aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert+renesas@glider.be>2015-02-17 10:43:02 -0500
committerSimon Horman <horms+renesas@verge.net.au>2015-02-25 02:02:22 -0500
commit7b9ad9a0ab82be3cb0607d5242584a4a4948e89c (patch)
tree6e250274ba4f25e266930de48dd1e54f7fc75273 /arch/arm/boot
parent12920b02c0e438f2b8f636c26755a0361f9966f0 (diff)
ARM: shmobile: r8a73a4 dtsi: Add PM domain support
Add a device node for the System Controller, with subnodes that represent the hardware power area hierarchy. Hook up all devices to their respective PM domains. Add a minimal device node for the Coresight-ETM hardware block, and hook it up to the D4 PM domain, so the R-Mobile System Controller driver can keep the domain powered, until the new Coresight code handles runtime PM. The System Controller is also used by the R-Mobile Reset driver, which can now restart the system. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi177
1 files changed, 177 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index d41201d258ca..0fd889f88109 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -28,9 +28,15 @@
28 compatible = "arm,cortex-a15"; 28 compatible = "arm,cortex-a15";
29 reg = <0>; 29 reg = <0>;
30 clock-frequency = <1500000000>; 30 clock-frequency = <1500000000>;
31 power-domains = <&pd_a2sl>;
31 }; 32 };
32 }; 33 };
33 34
35 ptm {
36 compatible = "arm,coresight-etm3x";
37 power-domains = <&pd_d4>;
38 };
39
34 timer { 40 timer {
35 compatible = "arm,armv7-timer"; 41 compatible = "arm,armv7-timer";
36 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 42 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -42,11 +48,13 @@
42 dbsc1: memory-controller@e6790000 { 48 dbsc1: memory-controller@e6790000 {
43 compatible = "renesas,dbsc-r8a73a4"; 49 compatible = "renesas,dbsc-r8a73a4";
44 reg = <0 0xe6790000 0 0x10000>; 50 reg = <0 0xe6790000 0 0x10000>;
51 power-domains = <&pd_a3bc>;
45 }; 52 };
46 53
47 dbsc2: memory-controller@e67a0000 { 54 dbsc2: memory-controller@e67a0000 {
48 compatible = "renesas,dbsc-r8a73a4"; 55 compatible = "renesas,dbsc-r8a73a4";
49 reg = <0 0xe67a0000 0 0x10000>; 56 reg = <0 0xe67a0000 0 0x10000>;
57 power-domains = <&pd_a3bc>;
50 }; 58 };
51 59
52 dmac: dma-multiplexer { 60 dmac: dma-multiplexer {
@@ -89,6 +97,7 @@
89 "ch12", "ch13", "ch14", "ch15", 97 "ch12", "ch13", "ch14", "ch15",
90 "ch16", "ch17", "ch18", "ch19"; 98 "ch16", "ch17", "ch18", "ch19";
91 clocks = <&mstp2_clks R8A73A4_CLK_DMAC>; 99 clocks = <&mstp2_clks R8A73A4_CLK_DMAC>;
100 power-domains = <&pd_a3sp>;
92 }; 101 };
93 }; 102 };
94 103
@@ -99,6 +108,7 @@
99 reg = <0 0xe60b0000 0 0x428>; 108 reg = <0 0xe60b0000 0 0x428>;
100 interrupts = <0 179 IRQ_TYPE_LEVEL_HIGH>; 109 interrupts = <0 179 IRQ_TYPE_LEVEL_HIGH>;
101 clocks = <&mstp4_clks R8A73A4_CLK_IIC5>; 110 clocks = <&mstp4_clks R8A73A4_CLK_IIC5>;
111 power-domains = <&pd_a3sp>;
102 112
103 status = "disabled"; 113 status = "disabled";
104 }; 114 };
@@ -109,6 +119,7 @@
109 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>; 119 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
110 clocks = <&mstp3_clks R8A73A4_CLK_CMT1>; 120 clocks = <&mstp3_clks R8A73A4_CLK_CMT1>;
111 clock-names = "fck"; 121 clock-names = "fck";
122 power-domains = <&pd_c5>;
112 123
113 renesas,channels-mask = <0xff>; 124 renesas,channels-mask = <0xff>;
114 125
@@ -152,6 +163,7 @@
152 <0 29 IRQ_TYPE_LEVEL_HIGH>, 163 <0 29 IRQ_TYPE_LEVEL_HIGH>,
153 <0 30 IRQ_TYPE_LEVEL_HIGH>, 164 <0 30 IRQ_TYPE_LEVEL_HIGH>,
154 <0 31 IRQ_TYPE_LEVEL_HIGH>; 165 <0 31 IRQ_TYPE_LEVEL_HIGH>;
166 power-domains = <&pd_c4>;
155 }; 167 };
156 168
157 irqc1: interrupt-controller@e61c0200 { 169 irqc1: interrupt-controller@e61c0200 {
@@ -185,6 +197,7 @@
185 <0 55 IRQ_TYPE_LEVEL_HIGH>, 197 <0 55 IRQ_TYPE_LEVEL_HIGH>,
186 <0 56 IRQ_TYPE_LEVEL_HIGH>, 198 <0 56 IRQ_TYPE_LEVEL_HIGH>,
187 <0 57 IRQ_TYPE_LEVEL_HIGH>; 199 <0 57 IRQ_TYPE_LEVEL_HIGH>;
200 power-domains = <&pd_c4>;
188 }; 201 };
189 202
190 pfc: pfc@e6050000 { 203 pfc: pfc@e6050000 {
@@ -208,6 +221,7 @@
208 <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>, 221 <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>,
209 <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>, 222 <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>,
210 <&irqc1 24 0>, <&irqc1 25 0>; 223 <&irqc1 24 0>, <&irqc1 25 0>;
224 power-domains = <&pd_c5>;
211 }; 225 };
212 226
213 thermal@e61f0000 { 227 thermal@e61f0000 {
@@ -216,6 +230,7 @@
216 <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>; 230 <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>;
217 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; 231 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
218 clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>; 232 clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>;
233 power-domains = <&pd_c5>;
219 }; 234 };
220 235
221 i2c0: i2c@e6500000 { 236 i2c0: i2c@e6500000 {
@@ -225,6 +240,7 @@
225 reg = <0 0xe6500000 0 0x428>; 240 reg = <0 0xe6500000 0 0x428>;
226 interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>; 241 interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&mstp3_clks R8A73A4_CLK_IIC0>; 242 clocks = <&mstp3_clks R8A73A4_CLK_IIC0>;
243 power-domains = <&pd_a3sp>;
228 status = "disabled"; 244 status = "disabled";
229 }; 245 };
230 246
@@ -235,6 +251,7 @@
235 reg = <0 0xe6510000 0 0x428>; 251 reg = <0 0xe6510000 0 0x428>;
236 interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>; 252 interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>;
237 clocks = <&mstp3_clks R8A73A4_CLK_IIC1>; 253 clocks = <&mstp3_clks R8A73A4_CLK_IIC1>;
254 power-domains = <&pd_a3sp>;
238 status = "disabled"; 255 status = "disabled";
239 }; 256 };
240 257
@@ -245,6 +262,7 @@
245 reg = <0 0xe6520000 0 0x428>; 262 reg = <0 0xe6520000 0 0x428>;
246 interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>; 263 interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>;
247 clocks = <&mstp3_clks R8A73A4_CLK_IIC2>; 264 clocks = <&mstp3_clks R8A73A4_CLK_IIC2>;
265 power-domains = <&pd_a3sp>;
248 status = "disabled"; 266 status = "disabled";
249 }; 267 };
250 268
@@ -255,6 +273,7 @@
255 reg = <0 0xe6530000 0 0x428>; 273 reg = <0 0xe6530000 0 0x428>;
256 interrupts = <0 177 IRQ_TYPE_LEVEL_HIGH>; 274 interrupts = <0 177 IRQ_TYPE_LEVEL_HIGH>;
257 clocks = <&mstp4_clks R8A73A4_CLK_IIC3>; 275 clocks = <&mstp4_clks R8A73A4_CLK_IIC3>;
276 power-domains = <&pd_a3sp>;
258 status = "disabled"; 277 status = "disabled";
259 }; 278 };
260 279
@@ -265,6 +284,7 @@
265 reg = <0 0xe6540000 0 0x428>; 284 reg = <0 0xe6540000 0 0x428>;
266 interrupts = <0 178 IRQ_TYPE_LEVEL_HIGH>; 285 interrupts = <0 178 IRQ_TYPE_LEVEL_HIGH>;
267 clocks = <&mstp4_clks R8A73A4_CLK_IIC4>; 286 clocks = <&mstp4_clks R8A73A4_CLK_IIC4>;
287 power-domains = <&pd_a3sp>;
268 status = "disabled"; 288 status = "disabled";
269 }; 289 };
270 290
@@ -275,6 +295,7 @@
275 reg = <0 0xe6550000 0 0x428>; 295 reg = <0 0xe6550000 0 0x428>;
276 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>; 296 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
277 clocks = <&mstp3_clks R8A73A4_CLK_IIC6>; 297 clocks = <&mstp3_clks R8A73A4_CLK_IIC6>;
298 power-domains = <&pd_a3sp>;
278 status = "disabled"; 299 status = "disabled";
279 }; 300 };
280 301
@@ -285,6 +306,7 @@
285 reg = <0 0xe6560000 0 0x428>; 306 reg = <0 0xe6560000 0 0x428>;
286 interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>; 307 interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>;
287 clocks = <&mstp3_clks R8A73A4_CLK_IIC7>; 308 clocks = <&mstp3_clks R8A73A4_CLK_IIC7>;
309 power-domains = <&pd_a3sp>;
288 status = "disabled"; 310 status = "disabled";
289 }; 311 };
290 312
@@ -295,6 +317,7 @@
295 reg = <0 0xe6570000 0 0x428>; 317 reg = <0 0xe6570000 0 0x428>;
296 interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>; 318 interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&mstp5_clks R8A73A4_CLK_IIC8>; 319 clocks = <&mstp5_clks R8A73A4_CLK_IIC8>;
320 power-domains = <&pd_a3sp>;
298 status = "disabled"; 321 status = "disabled";
299 }; 322 };
300 323
@@ -304,6 +327,7 @@
304 interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>; 327 interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
305 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB0>; 328 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB0>;
306 clock-names = "sci_ick"; 329 clock-names = "sci_ick";
330 power-domains = <&pd_a3sp>;
307 status = "disabled"; 331 status = "disabled";
308 }; 332 };
309 333
@@ -313,6 +337,7 @@
313 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>; 337 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
314 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB1>; 338 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB1>;
315 clock-names = "sci_ick"; 339 clock-names = "sci_ick";
340 power-domains = <&pd_a3sp>;
316 status = "disabled"; 341 status = "disabled";
317 }; 342 };
318 343
@@ -322,6 +347,7 @@
322 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>; 347 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
323 clocks = <&mstp2_clks R8A73A4_CLK_SCIFA0>; 348 clocks = <&mstp2_clks R8A73A4_CLK_SCIFA0>;
324 clock-names = "sci_ick"; 349 clock-names = "sci_ick";
350 power-domains = <&pd_a3sp>;
325 status = "disabled"; 351 status = "disabled";
326 }; 352 };
327 353
@@ -331,6 +357,7 @@
331 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>; 357 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>;
332 clocks = <&mstp2_clks R8A73A4_CLK_SCIFA1>; 358 clocks = <&mstp2_clks R8A73A4_CLK_SCIFA1>;
333 clock-names = "sci_ick"; 359 clock-names = "sci_ick";
360 power-domains = <&pd_a3sp>;
334 status = "disabled"; 361 status = "disabled";
335 }; 362 };
336 363
@@ -340,6 +367,7 @@
340 interrupts = <0 150 IRQ_TYPE_LEVEL_HIGH>; 367 interrupts = <0 150 IRQ_TYPE_LEVEL_HIGH>;
341 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB2>; 368 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB2>;
342 clock-names = "sci_ick"; 369 clock-names = "sci_ick";
370 power-domains = <&pd_a3sp>;
343 status = "disabled"; 371 status = "disabled";
344 }; 372 };
345 373
@@ -349,6 +377,7 @@
349 interrupts = <0 151 IRQ_TYPE_LEVEL_HIGH>; 377 interrupts = <0 151 IRQ_TYPE_LEVEL_HIGH>;
350 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB3>; 378 clocks = <&mstp2_clks R8A73A4_CLK_SCIFB3>;
351 clock-names = "sci_ick"; 379 clock-names = "sci_ick";
380 power-domains = <&pd_c4>;
352 status = "disabled"; 381 status = "disabled";
353 }; 382 };
354 383
@@ -357,6 +386,7 @@
357 reg = <0 0xee100000 0 0x100>; 386 reg = <0 0xee100000 0 0x100>;
358 interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>; 387 interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
359 clocks = <&mstp3_clks R8A73A4_CLK_SDHI0>; 388 clocks = <&mstp3_clks R8A73A4_CLK_SDHI0>;
389 power-domains = <&pd_a3sp>;
360 cap-sd-highspeed; 390 cap-sd-highspeed;
361 status = "disabled"; 391 status = "disabled";
362 }; 392 };
@@ -366,6 +396,7 @@
366 reg = <0 0xee120000 0 0x100>; 396 reg = <0 0xee120000 0 0x100>;
367 interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>; 397 interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>;
368 clocks = <&mstp3_clks R8A73A4_CLK_SDHI1>; 398 clocks = <&mstp3_clks R8A73A4_CLK_SDHI1>;
399 power-domains = <&pd_a3sp>;
369 cap-sd-highspeed; 400 cap-sd-highspeed;
370 status = "disabled"; 401 status = "disabled";
371 }; 402 };
@@ -375,6 +406,7 @@
375 reg = <0 0xee140000 0 0x100>; 406 reg = <0 0xee140000 0 0x100>;
376 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>; 407 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>;
377 clocks = <&mstp3_clks R8A73A4_CLK_SDHI2>; 408 clocks = <&mstp3_clks R8A73A4_CLK_SDHI2>;
409 power-domains = <&pd_a3sp>;
378 cap-sd-highspeed; 410 cap-sd-highspeed;
379 status = "disabled"; 411 status = "disabled";
380 }; 412 };
@@ -384,6 +416,7 @@
384 reg = <0 0xee200000 0 0x80>; 416 reg = <0 0xee200000 0 0x80>;
385 interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>; 417 interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
386 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF0>; 418 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF0>;
419 power-domains = <&pd_a3sp>;
387 reg-io-width = <4>; 420 reg-io-width = <4>;
388 status = "disabled"; 421 status = "disabled";
389 }; 422 };
@@ -393,6 +426,7 @@
393 reg = <0 0xee220000 0 0x80>; 426 reg = <0 0xee220000 0 0x80>;
394 interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>; 427 interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>;
395 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF1>; 428 clocks = <&mstp3_clks R8A73A4_CLK_MMCIF1>;
429 power-domains = <&pd_a3sp>;
396 reg-io-width = <4>; 430 reg-io-width = <4>;
397 status = "disabled"; 431 status = "disabled";
398 }; 432 };
@@ -417,6 +451,7 @@
417 ranges = <0 0 0 0x20000000>; 451 ranges = <0 0 0 0x20000000>;
418 reg = <0 0xfec10000 0 0x400>; 452 reg = <0 0xfec10000 0 0x400>;
419 clocks = <&zb_clk>; 453 clocks = <&zb_clk>;
454 power-domains = <&pd_c4>;
420 }; 455 };
421 456
422 clocks { 457 clocks {
@@ -711,4 +746,146 @@
711 "thermal", "iic8"; 746 "thermal", "iic8";
712 }; 747 };
713 }; 748 };
749
750 sysc: system-controller@e6180000 {
751 compatible = "renesas,sysc-r8a73a4", "renesas,sysc-rmobile";
752 reg = <0 0xe6180000 0 0x8000>, <0 0xe6188000 0 0x8000>;
753
754 pm-domains {
755 pd_c5: c5 {
756 #address-cells = <1>;
757 #size-cells = <0>;
758 #power-domain-cells = <0>;
759
760 pd_c4: c4@0 {
761 reg = <0>;
762 #address-cells = <1>;
763 #size-cells = <0>;
764 #power-domain-cells = <0>;
765
766 pd_a3sg: a3sg@16 {
767 reg = <16>;
768 #power-domain-cells = <0>;
769 };
770
771 pd_a3ex: a3ex@17 {
772 reg = <17>;
773 #power-domain-cells = <0>;
774 };
775
776 pd_a3sp: a3sp@18 {
777 reg = <18>;
778 #address-cells = <1>;
779 #size-cells = <0>;
780 #power-domain-cells = <0>;
781
782 pd_a2us: a2us@19 {
783 reg = <19>;
784 #power-domain-cells = <0>;
785 };
786 };
787
788 pd_a3sm: a3sm@20 {
789 reg = <20>;
790 #address-cells = <1>;
791 #size-cells = <0>;
792 #power-domain-cells = <0>;
793
794 pd_a2sl: a2sl@21 {
795 reg = <21>;
796 #power-domain-cells = <0>;
797 };
798 };
799
800 pd_a3km: a3km@22 {
801 reg = <22>;
802 #address-cells = <1>;
803 #size-cells = <0>;
804 #power-domain-cells = <0>;
805
806 pd_a2kl: a2kl@23 {
807 reg = <23>;
808 #power-domain-cells = <0>;
809 };
810 };
811 };
812
813 pd_c4ma: c4ma@1 {
814 reg = <1>;
815 #power-domain-cells = <0>;
816 };
817
818 pd_c4cl: c4cl@2 {
819 reg = <2>;
820 #power-domain-cells = <0>;
821 };
822
823 pd_d4: d4@3 {
824 reg = <3>;
825 #power-domain-cells = <0>;
826 };
827
828 pd_a4bc: a4bc@4 {
829 reg = <4>;
830 #address-cells = <1>;
831 #size-cells = <0>;
832 #power-domain-cells = <0>;
833
834 pd_a3bc: a3bc@5 {
835 reg = <5>;
836 #power-domain-cells = <0>;
837 };
838 };
839
840 pd_a4l: a4l@6 {
841 reg = <6>;
842 #power-domain-cells = <0>;
843 };
844
845 pd_a4lc: a4lc@7 {
846 reg = <7>;
847 #power-domain-cells = <0>;
848 };
849
850 pd_a4mp: a4mp@8 {
851 reg = <8>;
852 #address-cells = <1>;
853 #size-cells = <0>;
854 #power-domain-cells = <0>;
855
856 pd_a3mp: a3mp@9 {
857 reg = <9>;
858 #power-domain-cells = <0>;
859 };
860
861 pd_a3vc: a3vc@10 {
862 reg = <10>;
863 #power-domain-cells = <0>;
864 };
865 };
866
867 pd_a4sf: a4sf@11 {
868 reg = <11>;
869 #power-domain-cells = <0>;
870 };
871
872 pd_a3r: a3r@12 {
873 reg = <12>;
874 #address-cells = <1>;
875 #size-cells = <0>;
876 #power-domain-cells = <0>;
877
878 pd_a2rv: a2rv@13 {
879 reg = <13>;
880 #power-domain-cells = <0>;
881 };
882
883 pd_a2is: a2is@14 {
884 reg = <14>;
885 #power-domain-cells = <0>;
886 };
887 };
888 };
889 };
890 };
714}; 891};