]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - arch/arm64/boot/dts/arm/juno-r1.dts
arm64: dts: juno: fix cluster sleep state entry latency on all SoC versions
[mirror_ubuntu-zesty-kernel.git] / arch / arm64 / boot / dts / arm / juno-r1.dts
1 /*
2 * ARM Ltd. Juno Platform
3 *
4 * Copyright (c) 2015 ARM Ltd.
5 *
6 * This file is licensed under a dual GPLv2 or BSD license.
7 */
8
9 /dts-v1/;
10
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
12
13 / {
14 model = "ARM Juno development board (r1)";
15 compatible = "arm,juno-r1", "arm,juno", "arm,vexpress";
16 interrupt-parent = <&gic>;
17 #address-cells = <2>;
18 #size-cells = <2>;
19
20 aliases {
21 serial0 = &soc_uart0;
22 };
23
24 chosen {
25 stdout-path = "serial0:115200n8";
26 };
27
28 psci {
29 compatible = "arm,psci-0.2";
30 method = "smc";
31 };
32
33 cpus {
34 #address-cells = <2>;
35 #size-cells = <0>;
36
37 cpu-map {
38 cluster0 {
39 core0 {
40 cpu = <&A57_0>;
41 };
42 core1 {
43 cpu = <&A57_1>;
44 };
45 };
46
47 cluster1 {
48 core0 {
49 cpu = <&A53_0>;
50 };
51 core1 {
52 cpu = <&A53_1>;
53 };
54 core2 {
55 cpu = <&A53_2>;
56 };
57 core3 {
58 cpu = <&A53_3>;
59 };
60 };
61 };
62
63 idle-states {
64 entry-method = "arm,psci";
65
66 CPU_SLEEP_0: cpu-sleep-0 {
67 compatible = "arm,idle-state";
68 arm,psci-suspend-param = <0x0010000>;
69 local-timer-stop;
70 entry-latency-us = <300>;
71 exit-latency-us = <1200>;
72 min-residency-us = <2000>;
73 };
74
75 CLUSTER_SLEEP_0: cluster-sleep-0 {
76 compatible = "arm,idle-state";
77 arm,psci-suspend-param = <0x1010000>;
78 local-timer-stop;
79 entry-latency-us = <400>;
80 exit-latency-us = <1200>;
81 min-residency-us = <2500>;
82 };
83 };
84
85 A57_0: cpu@0 {
86 compatible = "arm,cortex-a57","arm,armv8";
87 reg = <0x0 0x0>;
88 device_type = "cpu";
89 enable-method = "psci";
90 next-level-cache = <&A57_L2>;
91 clocks = <&scpi_dvfs 0>;
92 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
93 };
94
95 A57_1: cpu@1 {
96 compatible = "arm,cortex-a57","arm,armv8";
97 reg = <0x0 0x1>;
98 device_type = "cpu";
99 enable-method = "psci";
100 next-level-cache = <&A57_L2>;
101 clocks = <&scpi_dvfs 0>;
102 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
103 };
104
105 A53_0: cpu@100 {
106 compatible = "arm,cortex-a53","arm,armv8";
107 reg = <0x0 0x100>;
108 device_type = "cpu";
109 enable-method = "psci";
110 next-level-cache = <&A53_L2>;
111 clocks = <&scpi_dvfs 1>;
112 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
113 };
114
115 A53_1: cpu@101 {
116 compatible = "arm,cortex-a53","arm,armv8";
117 reg = <0x0 0x101>;
118 device_type = "cpu";
119 enable-method = "psci";
120 next-level-cache = <&A53_L2>;
121 clocks = <&scpi_dvfs 1>;
122 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
123 };
124
125 A53_2: cpu@102 {
126 compatible = "arm,cortex-a53","arm,armv8";
127 reg = <0x0 0x102>;
128 device_type = "cpu";
129 enable-method = "psci";
130 next-level-cache = <&A53_L2>;
131 clocks = <&scpi_dvfs 1>;
132 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
133 };
134
135 A53_3: cpu@103 {
136 compatible = "arm,cortex-a53","arm,armv8";
137 reg = <0x0 0x103>;
138 device_type = "cpu";
139 enable-method = "psci";
140 next-level-cache = <&A53_L2>;
141 clocks = <&scpi_dvfs 1>;
142 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
143 };
144
145 A57_L2: l2-cache0 {
146 compatible = "cache";
147 };
148
149 A53_L2: l2-cache1 {
150 compatible = "cache";
151 };
152 };
153
154 pmu_a57 {
155 compatible = "arm,cortex-a57-pmu";
156 interrupts = <GIC_SPI 02 IRQ_TYPE_LEVEL_HIGH>,
157 <GIC_SPI 06 IRQ_TYPE_LEVEL_HIGH>;
158 interrupt-affinity = <&A57_0>,
159 <&A57_1>;
160 };
161
162 pmu_a53 {
163 compatible = "arm,cortex-a53-pmu";
164 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
165 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
166 <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
167 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
168 interrupt-affinity = <&A53_0>,
169 <&A53_1>,
170 <&A53_2>,
171 <&A53_3>;
172 };
173
174 #include "juno-base.dtsi"
175 };
176
177 &memtimer {
178 status = "okay";
179 };
180
181 &pcie_ctlr {
182 status = "okay";
183 };
184
185 &etm0 {
186 cpu = <&A57_0>;
187 };
188
189 &etm1 {
190 cpu = <&A57_1>;
191 };
192
193 &etm2 {
194 cpu = <&A53_0>;
195 };
196
197 &etm3 {
198 cpu = <&A53_1>;
199 };
200
201 &etm4 {
202 cpu = <&A53_2>;
203 };
204
205 &etm5 {
206 cpu = <&A53_3>;
207 };
208
209 &big_cluster_thermal_zone {
210 status = "okay";
211 };
212
213 &little_cluster_thermal_zone {
214 status = "okay";
215 };
216
217 &gpu0_thermal_zone {
218 status = "okay";
219 };
220
221 &gpu1_thermal_zone {
222 status = "okay";
223 };