Skip to content

Commit 9bca2a5

Browse files
committed
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>
2 parents e8a53f2 + 89d0ad7 commit 9bca2a5

2 files changed

Lines changed: 83 additions & 0 deletions

File tree

arch/arm64/boot/dts/cix/sky1-power.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,17 @@
3030
#define SKY1_PD_ISP0 20
3131
#define SKY1_PD_GPU 21
3232

33+
#define SKY1_PERF_GPU_CORE 0
34+
#define SKY1_PERF_GPU_TOP 1
35+
#define SKY1_PERF_CPU_L 2
36+
#define SKY1_PERF_CPU_B0 3
37+
#define SKY1_PERF_CPU_B1 4
38+
#define SKY1_PERF_CPU_M0 5
39+
#define SKY1_PERF_CPU_M1 6
40+
#define SKY1_PERF_DSU 7
41+
#define SKY1_PERF_NPU 8
42+
#define SKY1_PERF_VPU 9
43+
#define SKY1_PERF_CI700 10
44+
#define SKY1_PERF_NI700 11
45+
3346
#endif

arch/arm64/boot/dts/cix/sky1.dtsi

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,95 +22,131 @@
2222
enable-method = "psci";
2323
reg = <0x0 0x0>;
2424
device_type = "cpu";
25+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
26+
power-domain-names = "perf";
2527
capacity-dmips-mhz = <403>;
28+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
2629
};
2730

2831
cpu1: cpu@100 {
2932
compatible = "arm,cortex-a520";
3033
enable-method = "psci";
3134
reg = <0x0 0x100>;
3235
device_type = "cpu";
36+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
37+
power-domain-names = "perf";
3338
capacity-dmips-mhz = <403>;
39+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
3440
};
3541

3642
cpu2: cpu@200 {
3743
compatible = "arm,cortex-a520";
3844
enable-method = "psci";
3945
reg = <0x0 0x200>;
4046
device_type = "cpu";
47+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
48+
power-domain-names = "perf";
4149
capacity-dmips-mhz = <403>;
50+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
4251
};
4352

4453
cpu3: cpu@300 {
4554
compatible = "arm,cortex-a520";
4655
enable-method = "psci";
4756
reg = <0x0 0x300>;
4857
device_type = "cpu";
58+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_L>;
59+
power-domain-names = "perf";
4960
capacity-dmips-mhz = <403>;
61+
cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
5062
};
5163

5264
cpu4: cpu@400 {
5365
compatible = "arm,cortex-a720";
5466
enable-method = "psci";
5567
reg = <0x0 0x400>;
5668
device_type = "cpu";
69+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M0>;
70+
power-domain-names = "perf";
5771
capacity-dmips-mhz = <1024>;
72+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
5873
};
5974

6075
cpu5: cpu@500 {
6176
compatible = "arm,cortex-a720";
6277
enable-method = "psci";
6378
reg = <0x0 0x500>;
6479
device_type = "cpu";
80+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M0>;
81+
power-domain-names = "perf";
6582
capacity-dmips-mhz = <1024>;
83+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
6684
};
6785

6886
cpu6: cpu@600 {
6987
compatible = "arm,cortex-a720";
7088
enable-method = "psci";
7189
reg = <0x0 0x600>;
7290
device_type = "cpu";
91+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M1>;
92+
power-domain-names = "perf";
7393
capacity-dmips-mhz = <1024>;
94+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
7495
};
7596

7697
cpu7: cpu@700 {
7798
compatible = "arm,cortex-a720";
7899
enable-method = "psci";
79100
reg = <0x0 0x700>;
80101
device_type = "cpu";
102+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_M1>;
103+
power-domain-names = "perf";
81104
capacity-dmips-mhz = <1024>;
105+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
82106
};
83107

84108
cpu8: cpu@800 {
85109
compatible = "arm,cortex-a720";
86110
enable-method = "psci";
87111
reg = <0x0 0x800>;
88112
device_type = "cpu";
113+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B0>;
114+
power-domain-names = "perf";
89115
capacity-dmips-mhz = <1024>;
116+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
90117
};
91118

92119
cpu9: cpu@900 {
93120
compatible = "arm,cortex-a720";
94121
enable-method = "psci";
95122
reg = <0x0 0x900>;
96123
device_type = "cpu";
124+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B0>;
125+
power-domain-names = "perf";
97126
capacity-dmips-mhz = <1024>;
127+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
98128
};
99129

100130
cpu10: cpu@a00 {
101131
compatible = "arm,cortex-a720";
102132
enable-method = "psci";
103133
reg = <0x0 0xa00>;
104134
device_type = "cpu";
135+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B1>;
136+
power-domain-names = "perf";
105137
capacity-dmips-mhz = <1024>;
138+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
106139
};
107140

108141
cpu11: cpu@b00 {
109142
compatible = "arm,cortex-a720";
110143
enable-method = "psci";
111144
reg = <0x0 0xb00>;
112145
device_type = "cpu";
146+
power-domains = <&scmi_dvfs SKY1_PERF_CPU_B1>;
147+
power-domain-names = "perf";
113148
capacity-dmips-mhz = <1024>;
149+
cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
114150
};
115151

116152
cpu-map {
@@ -153,6 +189,35 @@
153189
};
154190
};
155191
};
192+
193+
idle-states {
194+
CPU_SLEEP_0: cpu-sleep-0 {
195+
compatible = "arm,idle-state";
196+
arm,psci-suspend-param = <0x0010000>;
197+
local-timer-stop;
198+
entry-latency-us = <34>;
199+
exit-latency-us = <100>;
200+
min-residency-us = <3000>;
201+
};
202+
203+
CPU_SLEEP_1: cpu-sleep-1 {
204+
compatible = "arm,idle-state";
205+
arm,psci-suspend-param = <0x0010000>;
206+
local-timer-stop;
207+
entry-latency-us = <31>;
208+
exit-latency-us = <79>;
209+
min-residency-us = <3000>;
210+
};
211+
212+
CLUSTER_SLEEP_0: cluster-sleep-0 {
213+
compatible = "arm,idle-state";
214+
arm,psci-suspend-param = <0x1010000>;
215+
local-timer-stop;
216+
entry-latency-us = <41>;
217+
exit-latency-us = <104>;
218+
min-residency-us = <4000>;
219+
};
220+
};
156221
};
157222

158223
firmware {
@@ -164,6 +229,11 @@
164229
#address-cells = <1>;
165230
#size-cells = <0>;
166231

232+
scmi_dvfs: protocol@13 {
233+
reg = <0x13>;
234+
#power-domain-cells = <1>;
235+
};
236+
167237
scmi_clk: protocol@14 {
168238
reg = <0x14>;
169239
#clock-cells = <1>;

0 commit comments

Comments
 (0)