Commit d63250d7 authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by Thierry Reding
Browse files

ARM: tegra: Add EMC OPP and ICC properties to Tegra124 EMC and ACTMON device-tree nodes



Add EMC OPP DVFS/DFS tables and interconnect paths that will be used for
dynamic memory bandwidth scaling based on memory utilization statistics.
Update board device-trees by removing unsupported EMC OPPs.

Note that ACTMON watches all memory interconnect paths, but we use a
single CPU-READ interconnect path for driving memory bandwidth, for
simplicity.

Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 881741fa
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1465,3 +1465,11 @@ timing-924000000 {
		};
	};
};

&emc_icc_dvfs_opp_table {
	/delete-node/ opp@1200000000,1100;
};

&emc_bw_dfs_opp_table {
	/delete-node/ opp@1200000000;
};
+8 −0
Original line number Diff line number Diff line
@@ -2420,3 +2420,11 @@ timing-924000000 {
		};
	};
};

&emc_icc_dvfs_opp_table {
	/delete-node/ opp@1200000000,1100;
};

&emc_bw_dfs_opp_table {
	/delete-node/ opp@1200000000;
};
+10 −0
Original line number Diff line number Diff line
@@ -6649,3 +6649,13 @@ timing-792000000 {
		};
	};
};

&emc_icc_dvfs_opp_table {
	/delete-node/ opp@924000000,1100;
	/delete-node/ opp@1200000000,1100;
};

&emc_bw_dfs_opp_table {
	/delete-node/ opp@924000000;
	/delete-node/ opp@1200000000;
};
+10 −0
Original line number Diff line number Diff line
@@ -2048,3 +2048,13 @@ timing-792000000 {
		};
	};
};

&emc_icc_dvfs_opp_table {
	/delete-node/ opp@924000000,1100;
	/delete-node/ opp@1200000000,1100;
};

&emc_bw_dfs_opp_table {
	/delete-node/ opp@924000000;
	/delete-node/ opp@1200000000;
};
+419 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0

/ {
	emc_icc_dvfs_opp_table: emc-dvfs-opp-table {
		compatible = "operating-points-v2";

		opp@12750000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <12750000>;
			opp-supported-hw = <0x0003>;
		};

		opp@12750000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <12750000>;
			opp-supported-hw = <0x0008>;
		};

		opp@12750000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <12750000>;
			opp-supported-hw = <0x0010>;
		};

		opp@12750000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <12750000>;
			opp-supported-hw = <0x0004>;
		};

		opp@20400000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <20400000>;
			opp-supported-hw = <0x0003>;
		};

		opp@20400000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <20400000>;
			opp-supported-hw = <0x0008>;
		};

		opp@20400000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <20400000>;
			opp-supported-hw = <0x0010>;
		};

		opp@20400000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <20400000>;
			opp-supported-hw = <0x0004>;
		};

		opp@40800000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <40800000>;
			opp-supported-hw = <0x0003>;
		};

		opp@40800000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <40800000>;
			opp-supported-hw = <0x0008>;
		};

		opp@40800000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <40800000>;
			opp-supported-hw = <0x0010>;
		};

		opp@40800000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <40800000>;
			opp-supported-hw = <0x0004>;
		};

		opp@68000000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <68000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@68000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <68000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@68000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <68000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@68000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <68000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@102000000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <102000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@102000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <102000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@102000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <102000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@102000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <102000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@204000000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <204000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@204000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <204000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@204000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <204000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@204000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <204000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@264000000,800 {
			opp-microvolt = <800000 800000 1150000>;
			opp-hz = /bits/ 64 <264000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@264000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <264000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@264000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <264000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@264000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <264000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@300000000,850 {
			opp-microvolt = <850000 850000 1150000>;
			opp-hz = /bits/ 64 <300000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@300000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <300000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@300000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <300000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@300000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <300000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@348000000,850 {
			opp-microvolt = <850000 850000 1150000>;
			opp-hz = /bits/ 64 <348000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@348000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <348000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@348000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <348000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@348000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <348000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@396000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <396000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@396000000,1000 {
			opp-microvolt = <1000000 1000000 1150000>;
			opp-hz = /bits/ 64 <396000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@396000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <396000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@396000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <396000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@528000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <528000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@528000000,1000 {
			opp-microvolt = <1000000 1000000 1150000>;
			opp-hz = /bits/ 64 <528000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@528000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <528000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@528000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <528000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@600000000,950 {
			opp-microvolt = <950000 950000 1150000>;
			opp-hz = /bits/ 64 <600000000>;
			opp-supported-hw = <0x0008>;
		};

		opp@600000000,1000 {
			opp-microvolt = <1000000 1000000 1150000>;
			opp-hz = /bits/ 64 <600000000>;
			opp-supported-hw = <0x0003>;
		};

		opp@600000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <600000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@600000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <600000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@792000000,1000 {
			opp-microvolt = <1000000 1000000 1150000>;
			opp-hz = /bits/ 64 <792000000>;
			opp-supported-hw = <0x000B>;
		};

		opp@792000000,1050 {
			opp-microvolt = <1050000 1050000 1150000>;
			opp-hz = /bits/ 64 <792000000>;
			opp-supported-hw = <0x0010>;
		};

		opp@792000000,1110 {
			opp-microvolt = <1110000 1110000 1150000>;
			opp-hz = /bits/ 64 <792000000>;
			opp-supported-hw = <0x0004>;
		};

		opp@924000000,1100 {
			opp-microvolt = <1100000 1100000 1150000>;
			opp-hz = /bits/ 64 <924000000>;
			opp-supported-hw = <0x0013>;
		};

		opp@1200000000,1100 {
			opp-microvolt = <1100000 1100000 1150000>;
			opp-hz = /bits/ 64 <1200000000>;
			opp-supported-hw = <0x0003>;
		};
	};

	emc_bw_dfs_opp_table: emc-bandwidth-opp-table {
		compatible = "operating-points-v2";

		opp@12750000 {
			opp-hz = /bits/ 64 <12750000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <204000>;
		};

		opp@20400000 {
			opp-hz = /bits/ 64 <20400000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <326400>;
		};

		opp@40800000 {
			opp-hz = /bits/ 64 <40800000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <652800>;
		};

		opp@68000000 {
			opp-hz = /bits/ 64 <68000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <1088000>;
		};

		opp@102000000 {
			opp-hz = /bits/ 64 <102000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <1632000>;
		};

		opp@204000000 {
			opp-hz = /bits/ 64 <204000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <3264000>;
		};

		opp@264000000 {
			opp-hz = /bits/ 64 <264000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <4224000>;
		};

		opp@300000000 {
			opp-hz = /bits/ 64 <300000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <4800000>;
		};

		opp@348000000 {
			opp-hz = /bits/ 64 <348000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <5568000>;
		};

		opp@396000000 {
			opp-hz = /bits/ 64 <396000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <6336000>;
		};

		opp@528000000 {
			opp-hz = /bits/ 64 <528000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <8448000>;
		};

		opp@600000000 {
			opp-hz = /bits/ 64 <600000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <9600000>;
		};

		opp@792000000 {
			opp-hz = /bits/ 64 <792000000>;
			opp-supported-hw = <0x001F>;
			opp-peak-kBps = <12672000>;
		};

		opp@924000000 {
			opp-hz = /bits/ 64 <924000000>;
			opp-supported-hw = <0x0013>;
			opp-peak-kBps = <14784000>;
		};

		opp@1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-supported-hw = <0x0003>;
			opp-peak-kBps = <19200000>;
		};
	};
};
Loading