- Add cpuidle and cpufreq support for Sky1

-----BEGIN PGP SIGNATURE-----
 
 iQHLBAABCgA1FiEEE9MyVaemtW1m4wM6rfNrQFP6hVAFAmoPydEXHHBldGVyLmNo
 ZW5AY2l4dGVjaC5jb20ACgkQrfNrQFP6hVB0Ggv+OvE62fkIxShHVae+MeDf5bza
 gv4JkN7lKea3ivoDLOINL/X6wsEigswMrvYm/i+RZbHdyLFHfssnCTds/Qu5J8bm
 G5/aYPbizSkHChiR9L0eQjxvSZV8rLhh4YKAIYEJulD6NmWcLQwp6foNPaQquf5j
 kw9pldjHRD324zAs0CtFwOQ3N4ToVp5a7OkHjPBOlB7XzcdzfTs3Bd+rLQUiswLN
 r5UY1/VEhjGPJfRBfK1b/FjwTgUnDUUcuRBlMmQked7Nyw1ToIEmyMbU6UoGsaZx
 t5JbTYbAR2XvRWWrTQGBpvo6N1KllHv6cdrLJePMhMJTMYqml6uxpkuIYuSQhaiE
 kCTmGG9sFcfws3E/nE+DRZnote74B0OSBWxcuPOZM07zo/iFKXMS0HcsLxMcUvwD
 FmJ66pqdeBVt41tG8VBu33A013WvEtAOOMoDhYLN5+rmiCnS93ppBqzJVkdjfE42
 C3A6J3atYYpoFeyYInR4AQlenWwSWwAoMNMme42Q
 =jaeM
 -----END PGP SIGNATURE-----

Merge tag 'cix-dt-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix into soc/dt

- Add cpuidle and cpufreq support for Sky1

* tag 'cix-dt-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix:
  arm64: dts: cix: Add CPU idle states for Sky1
  arm64: dts: cix: Add SCMI performance domains for CPUFreq on Sky1

Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
Linus Walleij 2026-06-01 22:13:51 +02:00
commit 9bca2a5bbe
2 changed files with 83 additions and 0 deletions

View File

@ -30,4 +30,17 @@
#define SKY1_PD_ISP0 20
#define SKY1_PD_GPU 21
#define SKY1_PERF_GPU_CORE 0
#define SKY1_PERF_GPU_TOP 1
#define SKY1_PERF_CPU_L 2
#define SKY1_PERF_CPU_B0 3
#define SKY1_PERF_CPU_B1 4
#define SKY1_PERF_CPU_M0 5
#define SKY1_PERF_CPU_M1 6
#define SKY1_PERF_DSU 7
#define SKY1_PERF_NPU 8
#define SKY1_PERF_VPU 9
#define SKY1_PERF_CI700 10
#define SKY1_PERF_NI700 11
#endif

View File

@ -22,7 +22,10 @@ cpu0: cpu@0 {
enable-method = "psci";
reg = <0x0 0x0>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
power-domain-names = "perf";
capacity-dmips-mhz = <403>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
cpu1: cpu@100 {
@ -30,7 +33,10 @@ cpu1: cpu@100 {
enable-method = "psci";
reg = <0x0 0x100>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
power-domain-names = "perf";
capacity-dmips-mhz = <403>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
cpu2: cpu@200 {
@ -38,7 +44,10 @@ cpu2: cpu@200 {
enable-method = "psci";
reg = <0x0 0x200>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
power-domain-names = "perf";
capacity-dmips-mhz = <403>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
cpu3: cpu@300 {
@ -46,7 +55,10 @@ cpu3: cpu@300 {
enable-method = "psci";
reg = <0x0 0x300>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
power-domain-names = "perf";
capacity-dmips-mhz = <403>;
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
};
cpu4: cpu@400 {
@ -54,7 +66,10 @@ cpu4: cpu@400 {
enable-method = "psci";
reg = <0x0 0x400>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M0>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu5: cpu@500 {
@ -62,7 +77,10 @@ cpu5: cpu@500 {
enable-method = "psci";
reg = <0x0 0x500>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M0>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu6: cpu@600 {
@ -70,7 +88,10 @@ cpu6: cpu@600 {
enable-method = "psci";
reg = <0x0 0x600>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M1>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu7: cpu@700 {
@ -78,7 +99,10 @@ cpu7: cpu@700 {
enable-method = "psci";
reg = <0x0 0x700>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M1>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu8: cpu@800 {
@ -86,7 +110,10 @@ cpu8: cpu@800 {
enable-method = "psci";
reg = <0x0 0x800>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B0>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu9: cpu@900 {
@ -94,7 +121,10 @@ cpu9: cpu@900 {
enable-method = "psci";
reg = <0x0 0x900>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B0>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu10: cpu@a00 {
@ -102,7 +132,10 @@ cpu10: cpu@a00 {
enable-method = "psci";
reg = <0x0 0xa00>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B1>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu11: cpu@b00 {
@ -110,7 +143,10 @@ cpu11: cpu@b00 {
enable-method = "psci";
reg = <0x0 0xb00>;
device_type = "cpu";
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B1>;
power-domain-names = "perf";
capacity-dmips-mhz = <1024>;
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
};
cpu-map {
@ -153,6 +189,35 @@ core11 {
};
};
};
idle-states {
CPU_SLEEP_0: cpu-sleep-0 {
compatible = "arm,idle-state";
arm,psci-suspend-param = <0x0010000>;
local-timer-stop;
entry-latency-us = <34>;
exit-latency-us = <100>;
min-residency-us = <3000>;
};
CPU_SLEEP_1: cpu-sleep-1 {
compatible = "arm,idle-state";
arm,psci-suspend-param = <0x0010000>;
local-timer-stop;
entry-latency-us = <31>;
exit-latency-us = <79>;
min-residency-us = <3000>;
};
CLUSTER_SLEEP_0: cluster-sleep-0 {
compatible = "arm,idle-state";
arm,psci-suspend-param = <0x1010000>;
local-timer-stop;
entry-latency-us = <41>;
exit-latency-us = <104>;
min-residency-us = <4000>;
};
};
};
firmware {
@ -164,6 +229,11 @@ ap_to_pm_scmi: scmi {
#address-cells = <1>;
#size-cells = <0>;
scmi_dvfs: protocol@13 {
reg = <0x13>;
#power-domain-cells = <1>;
};
scmi_clk: protocol@14 {
reg = <0x14>;
#clock-cells = <1>;