Skip to content

Commit aeedca4

Browse files
bryanbrattlofr-vignesh
authored andcommitted
arm64: dts: ti: k3-am62a: 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 AM62Ax 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 to only OPP entries the variant supports. A table of all these variants can be found in it's data sheet[0] for the AM62Ax 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/am62a3.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-2-d-gole@ti.com Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
1 parent 881f5e9 commit aeedca4

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
reg = <0x14 0x4>;
1818
};
1919

20+
opp_efuse_table: syscon@18 {
21+
compatible = "ti,am62-opp-efuse-table", "syscon";
22+
reg = <0x18 0x4>;
23+
};
24+
2025
cpsw_mac_syscon: ethernet-mac-syscon@200 {
2126
compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
2227
reg = <0x200 0x8>;

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

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
d-cache-line-size = <64>;
4949
d-cache-sets = <128>;
5050
next-level-cache = <&L2_0>;
51+
operating-points-v2 = <&a53_opp_table>;
52+
clocks = <&k3_clks 135 0>;
5153
};
5254

5355
cpu1: cpu@1 {
@@ -62,6 +64,8 @@
6264
d-cache-line-size = <64>;
6365
d-cache-sets = <128>;
6466
next-level-cache = <&L2_0>;
67+
operating-points-v2 = <&a53_opp_table>;
68+
clocks = <&k3_clks 136 0>;
6569
};
6670

6771
cpu2: cpu@2 {
@@ -76,6 +80,8 @@
7680
d-cache-line-size = <64>;
7781
d-cache-sets = <128>;
7882
next-level-cache = <&L2_0>;
83+
operating-points-v2 = <&a53_opp_table>;
84+
clocks = <&k3_clks 137 0>;
7985
};
8086

8187
cpu3: cpu@3 {
@@ -90,6 +96,51 @@
9096
d-cache-line-size = <64>;
9197
d-cache-sets = <128>;
9298
next-level-cache = <&L2_0>;
99+
operating-points-v2 = <&a53_opp_table>;
100+
clocks = <&k3_clks 138 0>;
101+
};
102+
};
103+
104+
a53_opp_table: opp-table {
105+
compatible = "operating-points-v2-ti-cpu";
106+
opp-shared;
107+
syscon = <&opp_efuse_table>;
108+
109+
opp-200000000 {
110+
opp-hz = /bits/ 64 <200000000>;
111+
opp-supported-hw = <0x01 0x0007>;
112+
clock-latency-ns = <6000000>;
113+
};
114+
115+
opp-400000000 {
116+
opp-hz = /bits/ 64 <400000000>;
117+
opp-supported-hw = <0x01 0x0007>;
118+
clock-latency-ns = <6000000>;
119+
};
120+
121+
opp-600000000 {
122+
opp-hz = /bits/ 64 <600000000>;
123+
opp-supported-hw = <0x01 0x0007>;
124+
clock-latency-ns = <6000000>;
125+
};
126+
127+
opp-800000000 {
128+
opp-hz = /bits/ 64 <800000000>;
129+
opp-supported-hw = <0x01 0x0007>;
130+
clock-latency-ns = <6000000>;
131+
};
132+
133+
opp-1000000000 {
134+
opp-hz = /bits/ 64 <1000000000>;
135+
opp-supported-hw = <0x01 0x0006>;
136+
clock-latency-ns = <6000000>;
137+
};
138+
139+
opp-1250000000 {
140+
opp-hz = /bits/ 64 <1250000000>;
141+
opp-supported-hw = <0x01 0x0004>;
142+
clock-latency-ns = <6000000>;
143+
opp-suspend;
93144
};
94145
};
95146

0 commit comments

Comments
 (0)