arm64: dts: apple: s5l8960x: Add cpufreq nodes
authorNick Chan <towinchenmi@gmail.com>
Mon, 3 Feb 2025 12:43:40 +0000 (20:43 +0800)
committerSven Peter <sven@svenpeter.dev>
Sun, 9 Feb 2025 11:49:11 +0000 (11:49 +0000)
Add cpufreq nodes for Apple A7 SoC.

Signed-off-by: Nick Chan <towinchenmi@gmail.com>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Sven Peter <sven@svenpeter.dev>
arch/arm64/boot/dts/apple/s5l8960x-5s.dtsi
arch/arm64/boot/dts/apple/s5l8960x-air1.dtsi
arch/arm64/boot/dts/apple/s5l8960x-mini2.dtsi
arch/arm64/boot/dts/apple/s5l8960x-opp.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/apple/s5l8960x.dtsi
arch/arm64/boot/dts/apple/s5l8965x-opp.dtsi [new file with mode: 0644]

index 51c08192365779608554edc9421dfffafa99b676..bfbd2629e206736822a157431ec959e1aa70f41b 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "s5l8960x.dtsi"
 #include "s5l8960x-common.dtsi"
+#include "s5l8960x-opp.dtsi"
 #include <dt-bindings/input/input.h>
 
 / {
index 7d6e799c933a240d14ba595596fd9b69718d68a6..dd57eb1d34c06e6be66dedfac567fe60794649f0 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "s5l8960x.dtsi"
 #include "s5l8960x-common.dtsi"
+#include "s5l8965x-opp.dtsi"
 #include <dt-bindings/input/input.h>
 
 / {
index 2ba846db2266e6599e301dbaf259f18ccfc1c27c..f3696d22e71cd126e8f2dd3cbbcaa0555609e89e 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "s5l8960x.dtsi"
 #include "s5l8960x-common.dtsi"
+#include "s5l8960x-opp.dtsi"
 #include <dt-bindings/input/input.h>
 
 / {
diff --git a/arch/arm64/boot/dts/apple/s5l8960x-opp.dtsi b/arch/arm64/boot/dts/apple/s5l8960x-opp.dtsi
new file mode 100644 (file)
index 0000000..e4d568c
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Operating points for Apple S5L8960X "A7" SoC, Up to 1296 MHz
+ *
+ * target-type: N51, N53, J85, J86. J87, J85m, J86m, J87m
+ *
+ * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com>
+ */
+
+/ {
+       cyclone_opp: opp-table {
+               compatible = "operating-points-v2";
+
+               opp01 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-level = <1>;
+                       clock-latency-ns = <15500>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <396000000>;
+                       opp-level = <2>;
+                       clock-latency-ns = <43000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-level = <3>;
+                       clock-latency-ns = <26000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <840000000>;
+                       opp-level = <4>;
+                       clock-latency-ns = <30000>;
+               };
+               opp05 {
+                       opp-hz = /bits/ 64 <1128000000>;
+                       opp-level = <5>;
+                       clock-latency-ns = <39500>;
+               };
+               opp06 {
+                       opp-hz = /bits/ 64 <1296000000>;
+                       opp-level = <6>;
+                       clock-latency-ns = <45500>;
+               };
+       };
+};
index 7705215fbdc7ba6f9f89a479802f3631ee4e7ac4..64dbae5c73515bb6a1651b9b26d349d0cfd0408a 100644 (file)
@@ -33,6 +33,8 @@
                        compatible = "apple,cyclone";
                        reg = <0x0 0x0>;
                        cpu-release-addr = <0 0>; /* To be filled by loader */
+                       operating-points-v2 = <&cyclone_opp>;
+                       performance-domains = <&cpufreq>;
                        enable-method = "spin-table";
                        device_type = "cpu";
                };
@@ -41,6 +43,8 @@
                        compatible = "apple,cyclone";
                        reg = <0x0 0x1>;
                        cpu-release-addr = <0 0>; /* To be filled by loader */
+                       operating-points-v2 = <&cyclone_opp>;
+                       performance-domains = <&cpufreq>;
                        enable-method = "spin-table";
                        device_type = "cpu";
                };
                nonposted-mmio;
                ranges;
 
+               cpufreq: performance-controller@202220000 {
+                       compatible = "apple,s5l8960x-cluster-cpufreq";
+                       reg = <0x2 0x02220000 0 0x1000>;
+                       #performance-domain-cells = <0>;
+               };
+
                serial0: serial@20a0a0000 {
                        compatible = "apple,s5l-uart";
                        reg = <0x2 0x0a0a0000 0x0 0x4000>;
diff --git a/arch/arm64/boot/dts/apple/s5l8965x-opp.dtsi b/arch/arm64/boot/dts/apple/s5l8965x-opp.dtsi
new file mode 100644 (file)
index 0000000..d34dae7
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Operating points for Apple S5L8965X "A7" Rev A SoC, Up to 1392 MHz
+ *
+ * target-type: J71, J72, J73
+ *
+ * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com>
+ */
+
+/ {
+       cyclone_opp: opp-table {
+               compatible = "operating-points-v2";
+
+               opp01 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-level = <1>;
+                       clock-latency-ns = <10000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-level = <2>;
+                       clock-latency-ns = <49000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <840000000>;
+                       opp-level = <3>;
+                       clock-latency-ns = <30000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <1128000000>;
+                       opp-level = <4>;
+                       clock-latency-ns = <39500>;
+               };
+               opp05 {
+                       opp-hz = /bits/ 64 <1296000000>;
+                       opp-level = <5>;
+                       clock-latency-ns = <45500>;
+               };
+               opp06 {
+                       opp-hz = /bits/ 64 <1392000000>;
+                       opp-level = <6>;
+                       clock-latency-ns = <46500>;
+               };
+       };
+};