Skip to content

Commit 76d855f

Browse files
bryanbrattlofr-vignesh
authored andcommitted
arm64: dts: ti: k3-am62p: add opp frequencies
One power management technique available to the Cortex-A53s is their ability to dynamically scale their frequency across the device's Operating Performance Points (OPP) The OPPs available for the Cortex-A53s on the AM62Px can vary based on the silicon variant used. The SoC variant is encoded into the WKUP_MMR0_WKUP0_CTRL_MMR0_JTAG_USER_ID register which is used to limit the OPP entries the SoC supports. A table of all these variants can be found in its data sheet[0] for the AM62Px processor family. Add the OPP table into the SoC's fdti file along with the syscon node to describe the WKUP_MMR0_WKUP0_CTRL_MMR0_JTAG_USER_ID register to detect the SoC variant. [0] https://www.ti.com/lit/ds/symlink/am62p-q1.pdf Signed-off-by: Bryan Brattlof <bb@ti.com> Signed-off-by: Dhruva Gole <d-gole@ti.com> Link: https://lore.kernel.org/r/20241008132052.407994-4-d-gole@ti.com Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
1 parent 5dae00d commit 76d855f

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

arch/arm64/boot/dts/ti/k3-am62p-j722s-common-wakeup.dtsi

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
bootph-all;
2121
};
2222

23+
opp_efuse_table: syscon@18 {
24+
compatible = "ti,am62-opp-efuse-table", "syscon";
25+
reg = <0x18 0x4>;
26+
};
27+
2328
cpsw_mac_syscon: ethernet-mac-syscon@200 {
2429
compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
2530
reg = <0x200 0x8>;

arch/arm64/boot/dts/ti/k3-am62p5.dtsi

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
d-cache-line-size = <64>;
4848
d-cache-sets = <128>;
4949
next-level-cache = <&l2_0>;
50+
operating-points-v2 = <&a53_opp_table>;
5051
clocks = <&k3_clks 135 0>;
5152
};
5253

@@ -62,6 +63,7 @@
6263
d-cache-line-size = <64>;
6364
d-cache-sets = <128>;
6465
next-level-cache = <&l2_0>;
66+
operating-points-v2 = <&a53_opp_table>;
6567
clocks = <&k3_clks 136 0>;
6668
};
6769

@@ -77,6 +79,7 @@
7779
d-cache-line-size = <64>;
7880
d-cache-sets = <128>;
7981
next-level-cache = <&l2_0>;
82+
operating-points-v2 = <&a53_opp_table>;
8083
clocks = <&k3_clks 137 0>;
8184
};
8285

@@ -92,10 +95,54 @@
9295
d-cache-line-size = <64>;
9396
d-cache-sets = <128>;
9497
next-level-cache = <&l2_0>;
98+
operating-points-v2 = <&a53_opp_table>;
9599
clocks = <&k3_clks 138 0>;
96100
};
97101
};
98102

103+
a53_opp_table: opp-table {
104+
compatible = "operating-points-v2-ti-cpu";
105+
opp-shared;
106+
syscon = <&opp_efuse_table>;
107+
108+
opp-200000000 {
109+
opp-hz = /bits/ 64 <200000000>;
110+
opp-supported-hw = <0x01 0x0007>;
111+
clock-latency-ns = <6000000>;
112+
};
113+
114+
opp-400000000 {
115+
opp-hz = /bits/ 64 <400000000>;
116+
opp-supported-hw = <0x01 0x0007>;
117+
clock-latency-ns = <6000000>;
118+
};
119+
120+
opp-600000000 {
121+
opp-hz = /bits/ 64 <600000000>;
122+
opp-supported-hw = <0x01 0x0007>;
123+
clock-latency-ns = <6000000>;
124+
};
125+
126+
opp-800000000 {
127+
opp-hz = /bits/ 64 <800000000>;
128+
opp-supported-hw = <0x01 0x0007>;
129+
clock-latency-ns = <6000000>;
130+
};
131+
132+
opp-1000000000 {
133+
opp-hz = /bits/ 64 <1000000000>;
134+
opp-supported-hw = <0x01 0x0006>;
135+
clock-latency-ns = <6000000>;
136+
};
137+
138+
opp-1250000000 {
139+
opp-hz = /bits/ 64 <1250000000>;
140+
opp-supported-hw = <0x01 0x0004>;
141+
clock-latency-ns = <6000000>;
142+
opp-suspend;
143+
};
144+
};
145+
99146
l2_0: l2-cache0 {
100147
compatible = "cache";
101148
cache-unified;

0 commit comments

Comments
 (0)