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: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
Родитель
881741fa44
Коммит
d63250d7fd
|
@ -1465,3 +1465,11 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&emc_icc_dvfs_opp_table {
|
||||
/delete-node/ opp@1200000000,1100;
|
||||
};
|
||||
|
||||
&emc_bw_dfs_opp_table {
|
||||
/delete-node/ opp@1200000000;
|
||||
};
|
||||
|
|
|
@ -2420,3 +2420,11 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&emc_icc_dvfs_opp_table {
|
||||
/delete-node/ opp@1200000000,1100;
|
||||
};
|
||||
|
||||
&emc_bw_dfs_opp_table {
|
||||
/delete-node/ opp@1200000000;
|
||||
};
|
||||
|
|
|
@ -6649,3 +6649,13 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&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;
|
||||
};
|
||||
|
|
|
@ -2048,3 +2048,13 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
&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;
|
||||
};
|
||||
|
|
|
@ -0,0 +1,419 @@
|
|||
// 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>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -8,6 +8,8 @@
|
|||
#include <dt-bindings/thermal/tegra124-soctherm.h>
|
||||
#include <dt-bindings/soc/tegra-pmc.h>
|
||||
|
||||
#include "tegra124-peripherals-opp.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "nvidia,tegra124";
|
||||
interrupt-parent = <&lic>;
|
||||
|
@ -290,6 +292,9 @@
|
|||
clock-names = "actmon", "emc";
|
||||
resets = <&tegra_car 119>;
|
||||
reset-names = "actmon";
|
||||
operating-points-v2 = <&emc_bw_dfs_opp_table>;
|
||||
interconnects = <&mc TEGRA124_MC_MPCORER &emc>;
|
||||
interconnect-names = "cpu-read";
|
||||
};
|
||||
|
||||
gpio: gpio@6000d000 {
|
||||
|
@ -660,6 +665,7 @@
|
|||
clock-names = "emc";
|
||||
|
||||
nvidia,memory-controller = <&mc>;
|
||||
operating-points-v2 = <&emc_icc_dvfs_opp_table>;
|
||||
|
||||
#interconnect-cells = <0>;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче