2 * DTS file for CSR SiRFatlas7 SoC
4 * Copyright (c) 2014 Cambridge Silicon Radio Limited, a CSR plc group company.
6 * Licensed under GPLv2 or later.
9 /include/ "skeleton.dtsi"
11 compatible = "sirf,atlas7";
14 interrupt-parent = <&gic>;
31 compatible = "arm,cortex-a7";
36 compatible = "arm,cortex-a7";
43 compatible = "fixed-clock";
45 clock-frequency = <32768>;
46 clock-output-names = "xinw";
49 compatible = "fixed-clock";
51 clock-frequency = <26000000>;
52 clock-output-names = "xin";
57 compatible = "simple-bus";
60 ranges = <0x10000000 0x10000000 0xc0000000>;
62 gic: interrupt-controller@10301000 {
63 compatible = "arm,cortex-a9-gic";
65 #interrupt-cells = <3>;
66 reg = <0x10301000 0x1000>,
70 pmu_regulator: pmu_regulator@10E30020 {
71 compatible = "sirf,atlas7-pmu-ldo";
72 reg = <0x10E30020 0x4>;
74 regulator-name = "ldo";
78 atlas7_codec: atlas7_codec@10E30000 {
79 #sound-dai-cells = <0>;
80 compatible = "sirf,atlas7-codec";
81 reg = <0x10E30000 0x400>;
86 atlas7_iacc: atlas7_iacc@10D01000 {
87 #sound-dai-cells = <0>;
88 compatible = "sirf,atlas7-iacc";
89 reg = <0x10D01000 0x100>;
90 dmas = <&dmac3 0>, <&dmac3 7>, <&dmac3 8>,
91 <&dmac3 3>, <&dmac3 9>;
92 dma-names = "rx", "tx0", "tx1", "tx2", "tx3";
97 compatible = "sirf,atlas7-ipc";
98 ranges = <0x13240000 0x13240000 0x00010000>;
103 compatible = "sirf,hwspinlock";
104 reg = <0x13240000 0x00010000>;
106 num-spinlocks = <30>;
110 compatible = "sirf,ns2m30-rproc";
111 reg = <0x13240000 0x00010000>;
112 interrupts = <0 123 0>;
116 compatible = "sirf,ns2m31-rproc";
117 reg = <0x13240000 0x00010000>;
118 interrupts = <0 126 0>;
122 compatible = "sirf,ns2kal0-rproc";
123 reg = <0x13240000 0x00010000>;
124 interrupts = <0 124 0>;
128 compatible = "sirf,ns2kal1-rproc";
129 reg = <0x13240000 0x00010000>;
130 interrupts = <0 127 0>;
134 pinctrl: ioc@18880000 {
135 compatible = "sirf,atlas7-ioc";
136 reg = <0x18880000 0x1000>,
141 compatible = "arteris, flexnoc", "simple-bus";
142 #address-cells = <1>;
144 ranges = <0x13240000 0x13240000 0x00010000>;
146 compatible = "sirf,atlas7-pmipc";
147 reg = <0x13240000 0x00010000>;
152 compatible = "arteris, flexnoc", "simple-bus";
153 #address-cells = <1>;
155 ranges = <0x10830000 0x10830000 0x18000>;
157 compatible = "sirf,nocfw-dramfw";
158 reg = <0x10830000 0x18000>;
163 compatible = "arteris, flexnoc", "simple-bus";
164 #address-cells = <1>;
166 ranges = <0x10250000 0x10250000 0x3000>;
168 compatible = "sirf,nocfw-spramfw";
169 reg = <0x10250000 0x3000>;
174 compatible = "arteris, flexnoc", "simple-bus";
175 #address-cells = <1>;
177 ranges = <0x10200000 0x10200000 0x3000>;
179 compatible = "sirf,nocfw-cpum";
180 reg = <0x10200000 0x3000>;
185 compatible = "arteris, flexnoc", "simple-bus";
186 #address-cells = <1>;
188 ranges = <0x18641000 0x18641000 0x3000>,
189 <0x18620000 0x18620000 0x1000>;
192 compatible = "sirf,nocfw-cgum";
193 reg = <0x18641000 0x3000>;
196 car: clock-controller@18620000 {
197 compatible = "sirf,atlas7-car";
198 reg = <0x18620000 0x1000>;
205 compatible = "arteris, flexnoc", "simple-bus";
206 #address-cells = <1>;
208 ranges = <0x18000000 0x18000000 0x0000ffff>,
209 <0x18010000 0x18010000 0x1000>,
210 <0x18020000 0x18020000 0x1000>,
211 <0x18030000 0x18030000 0x1000>,
212 <0x18040000 0x18040000 0x1000>,
213 <0x18050000 0x18050000 0x1000>,
214 <0x18060000 0x18060000 0x1000>,
215 <0x18100000 0x18100000 0x3000>,
216 <0x18250000 0x18250000 0x10000>,
217 <0x18200000 0x18200000 0x1000>;
219 dmac0: dma-controller@18000000 {
221 compatible = "sirf,atlas7-dmac";
222 reg = <0x18000000 0x1000>;
223 interrupts = <0 12 0>;
230 compatible = "sirf,nocfw-gnssm";
231 reg = <0x18100000 0x3000>;
234 uart0: uart@18010000 {
236 compatible = "sirf,atlas7-uart";
237 reg = <0x18010000 0x1000>;
238 interrupts = <0 17 0>;
241 dmas = <&dmac0 3>, <&dmac0 2>;
242 dma-names = "rx", "tx";
245 uart1: uart@18020000 {
247 compatible = "sirf,atlas7-uart";
248 reg = <0x18020000 0x1000>;
249 interrupts = <0 18 0>;
254 uart2: uart@18030000 {
256 compatible = "sirf,atlas7-uart";
257 reg = <0x18030000 0x1000>;
258 interrupts = <0 19 0>;
261 dmas = <&dmac0 6>, <&dmac0 7>;
262 dma-names = "rx", "tx";
265 uart3: uart@18040000 {
267 compatible = "sirf,atlas7-uart";
268 reg = <0x18040000 0x1000>;
269 interrupts = <0 66 0>;
272 dmas = <&dmac0 4>, <&dmac0 5>;
273 dma-names = "rx", "tx";
276 uart4: uart@18050000 {
278 compatible = "sirf,atlas7-uart";
279 reg = <0x18050000 0x1000>;
280 interrupts = <0 69 0>;
283 dmas = <&dmac0 0>, <&dmac0 1>;
284 dma-names = "rx", "tx";
287 uart5: uart@18060000 {
289 compatible = "sirf,atlas7-uart";
290 reg = <0x18060000 0x1000>;
291 interrupts = <0 71 0>;
294 dmas = <&dmac0 8>, <&dmac0 9>;
295 dma-names = "rx", "tx";
299 compatible = "dx,cc44p";
300 reg = <0x18250000 0x10000>;
301 interrupts = <0 27 0>;
305 compatible = "sirf,prima2-spi";
306 reg = <0x18200000 0x1000>;
307 interrupts = <0 16 0>;
309 #address-cells = <1>;
311 dmas = <&dmac0 12>, <&dmac0 13>;
312 dma-names = "rx", "tx";
319 compatible = "arteris, flexnoc", "simple-bus";
320 #address-cells = <1>;
322 ranges = <0x13000000 0x13000000 0x3000>;
324 compatible = "sirf,nocfw-gpum";
325 reg = <0x13000000 0x3000>;
330 compatible = "arteris, flexnoc", "simple-bus";
331 #address-cells = <1>;
333 ranges = <0x16000000 0x16000000 0x00200000>,
334 <0x17020000 0x17020000 0x1000>,
335 <0x17030000 0x17030000 0x1000>,
336 <0x17040000 0x17040000 0x1000>,
337 <0x17050000 0x17050000 0x10000>,
338 <0x17060000 0x17060000 0x200>,
339 <0x17060200 0x17060200 0x100>,
340 <0x17070000 0x17070000 0x200>,
341 <0x17070200 0x17070200 0x100>,
342 <0x170A0000 0x170A0000 0x3000>;
345 compatible = "sirf,nocfw-mediam";
346 reg = <0x170A0000 0x3000>;
349 gpio_0: gpio_mediam@17040000 {
351 #interrupt-cells = <2>;
352 compatible = "sirf,atlas7-gpio";
353 reg = <0x17040000 0x1000>;
354 interrupts = <0 13 0>, <0 14 0>;
356 clock-names = "gpio0_io";
358 interrupt-controller;
362 compatible = "sirf,atlas7-nand";
363 reg = <0x17050000 0x10000>;
364 interrupts = <0 41 0>;
365 clocks = <&car 108>, <&car 112>;
366 clock-names = "nand_io", "nand_nand";
369 sd0: sdhci@16000000 {
371 compatible = "sirf,atlas7-sdhc";
372 reg = <0x16000000 0x100000>;
373 interrupts = <0 38 0>;
374 clocks = <&car 109>, <&car 111>;
375 clock-names = "core", "iface";
382 sd1: sdhci@16100000 {
384 compatible = "sirf,atlas7-sdhc";
385 reg = <0x16100000 0x100000>;
386 interrupts = <0 38 0>;
387 clocks = <&car 109>, <&car 111>;
388 clock-names = "core", "iface";
396 compatible = "sirf,atlas7-usb";
397 reg = <0x17060000 0x200>;
398 interrupts = <0 10 0>;
400 sirf,usbphy = <&usbphy0>;
403 maximum-speed = "high-speed";
409 compatible = "sirf,atlas7-usb";
410 reg = <0x17070000 0x200>;
411 interrupts = <0 11 0>;
413 sirf,usbphy = <&usbphy1>;
416 maximum-speed = "high-speed";
421 compatible = "sirf,atlas7-usbphy";
422 reg = <0x17060200 0x100>;
428 compatible = "sirf,atlas7-usbphy";
429 reg = <0x17070200 0x100>;
436 compatible = "sirf,prima2-i2c";
437 reg = <0x17020000 0x1000>;
438 interrupts = <0 24 0>;
440 #address-cells = <1>;
447 compatible = "arteris, flexnoc", "simple-bus";
448 #address-cells = <1>;
450 ranges = <0x13290000 0x13290000 0x3000>,
451 <0x13300000 0x13300000 0x1000>,
452 <0x14200000 0x14200000 0x600000>;
455 compatible = "sirf,nocfw-vdifm";
456 reg = <0x13290000 0x3000>;
459 gpio_1: gpio_vdifm@13300000 {
461 #interrupt-cells = <2>;
462 compatible = "sirf,atlas7-gpio";
463 reg = <0x13300000 0x1000>;
464 interrupts = <0 43 0>, <0 44 0>, <0 45 0>;
466 clock-names = "gpio1_io";
468 interrupt-controller;
471 sd2: sdhci@14200000 {
473 compatible = "sirf,atlas7-sdhc";
474 reg = <0x14200000 0x100000>;
475 interrupts = <0 23 0>;
476 clocks = <&car 70>, <&car 75>;
477 clock-names = "core", "iface";
481 vqmmc-supply = <&vqmmc>;
483 regulator-min-microvolt = <1650000>;
484 regulator-max-microvolt = <1950000>;
485 regulator-name = "vqmmc-ldo";
486 regulator-type = "voltage";
488 regulator-allow-bypass;
492 sd3: sdhci@14300000 {
494 compatible = "sirf,atlas7-sdhc";
495 reg = <0x14300000 0x100000>;
496 interrupts = <0 23 0>;
497 clocks = <&car 76>, <&car 81>;
498 clock-names = "core", "iface";
503 sd5: sdhci@14500000 {
505 compatible = "sirf,atlas7-sdhc";
506 reg = <0x14500000 0x100000>;
507 interrupts = <0 39 0>;
508 clocks = <&car 71>, <&car 76>;
509 clock-names = "core", "iface";
515 sd6: sdhci@14600000 {
517 compatible = "sirf,atlas7-sdhc";
518 reg = <0x14600000 0x100000>;
519 interrupts = <0 98 0>;
520 clocks = <&car 72>, <&car 77>;
521 clock-names = "core", "iface";
526 sd7: sdhci@14700000 {
528 compatible = "sirf,atlas7-sdhc";
529 reg = <0x14700000 0x100000>;
530 interrupts = <0 98 0>;
531 clocks = <&car 72>, <&car 77>;
532 clock-names = "core", "iface";
539 compatible = "arteris, flexnoc", "simple-bus";
540 #address-cells = <1>;
542 ranges = <0x10d50000 0x10d50000 0x0000ffff>,
543 <0x10d60000 0x10d60000 0x0000ffff>,
544 <0x10d80000 0x10d80000 0x0000ffff>,
545 <0x10d90000 0x10d90000 0x0000ffff>,
546 <0x10ED0000 0x10ED0000 0x3000>,
547 <0x10dc8000 0x10dc8000 0x1000>,
548 <0x10dc0000 0x10dc0000 0x1000>,
549 <0x10db0000 0x10db0000 0x4000>,
550 <0x10d40000 0x10d40000 0x1000>,
551 <0x10d30000 0x10d30000 0x1000>;
554 compatible = "sirf,atlas7-tick";
555 reg = <0x10dc0000 0x1000>;
556 interrupts = <0 0 0>,
566 compatible = "sirf,atlas7-tick";
567 reg = <0x10dc8000 0x1000>;
568 interrupts = <0 74 0>,
578 compatible = "sirf,atlas7-vip0";
579 reg = <0x10db0000 0x2000>;
580 interrupts = <0 85 0>;
581 sirf,vip_cma_size = <0xC00000>;
585 compatible = "sirf,cvd";
586 reg = <0x10db2000 0x2000>;
590 dmac2: dma-controller@10d50000 {
592 compatible = "sirf,atlas7-dmac";
593 reg = <0x10d50000 0xffff>;
594 interrupts = <0 55 0>;
600 dmac3: dma-controller@10d60000 {
602 compatible = "sirf,atlas7-dmac";
603 reg = <0x10d60000 0xffff>;
604 interrupts = <0 56 0>;
611 compatible = "sirf,atlas7-adc";
612 reg = <0x10d80000 0xffff>;
613 interrupts = <0 34 0>;
615 #io-channel-cells = <1>;
619 compatible = "sirf,prima2-pulsec";
620 reg = <0x10d90000 0xffff>;
621 interrupts = <0 42 0>;
626 compatible = "sirf,nocfw-audiom";
627 reg = <0x10ED0000 0x3000>;
628 interrupts = <0 102 0>;
633 reg = <0x10d30000 0x1000>;
636 dmas = <&dmac2 6>, <&dmac2 7>;
637 dma-names = "rx", "tx";
642 reg = <0x10d40000 0x1000>;
643 interrupts = <0 22 0>;
645 dmas = <&dmac2 12>, <&dmac2 13>;
646 dma-names = "rx", "tx";
647 #address-cells = <1>;
654 compatible = "arteris, flexnoc", "simple-bus";
655 #address-cells = <1>;
657 ranges = <0x10820000 0x10820000 0x3000>,
658 <0x10800000 0x10800000 0x2000>;
660 compatible = "sirf,nocfw-ddrm";
661 reg = <0x10820000 0x3000>;
662 interrupts = <0 105 0>;
665 memory-controller@0x10800000 {
666 compatible = "sirf,atlas7-memc";
667 reg = <0x10800000 0x2000>;
673 compatible = "arteris, flexnoc", "simple-bus";
674 #address-cells = <1>;
676 ranges = <0x11002000 0x11002000 0x0000ffff>,
677 <0x11010000 0x11010000 0x3000>,
678 <0x11000000 0x11000000 0x1000>,
679 <0x11001000 0x11001000 0x1000>;
681 dmac4: dma-controller@11002000 {
683 compatible = "sirf,atlas7-dmac";
684 reg = <0x11002000 0x1000>;
685 interrupts = <0 99 0>;
690 uart6: uart@11000000 {
692 compatible = "sirf,atlas7-bt-uart",
694 reg = <0x11000000 0x1000>;
695 interrupts = <0 100 0>;
696 clocks = <&car 131>, <&car 133>, <&car 134>;
697 clock-names = "uart", "general", "noc";
699 dmas = <&dmac4 12>, <&dmac4 13>;
700 dma-names = "rx", "tx";
705 compatible = "sirf,atlas7-bt-usp",
706 "sirf,prima2-usp-pcm";
708 reg = <0x11001000 0x1000>;
710 clocks = <&car 132>, <&car 129>, <&car 133>,
711 <&car 134>, <&car 135>;
712 clock-names = "usp3_io", "a7ca_btss", "a7ca_io",
713 "noc_btm_io", "thbtm_io";
714 dmas = <&dmac4 0>, <&dmac4 1>;
715 dma-names = "rx", "tx";
719 compatible = "sirf,nocfw-btm";
720 reg = <0x11010000 0x3000>;
725 compatible = "arteris, flexnoc", "simple-bus";
726 #address-cells = <1>;
728 ranges = <0x18810000 0x18810000 0x3000>,
729 <0x18840000 0x18840000 0x1000>,
730 <0x18890000 0x18890000 0x1000>,
731 <0x188B0000 0x188B0000 0x10000>,
732 <0x188D0000 0x188D0000 0x1000>;
734 compatible = "sirf,nocfw-rtcm";
735 reg = <0x18810000 0x3000>;
736 interrupts = <0 109 0>;
739 gpio_2: gpio_rtcm@18890000 {
741 #interrupt-cells = <2>;
742 compatible = "sirf,atlas7-gpio";
743 reg = <0x18890000 0x1000>;
744 interrupts = <0 47 0>;
746 interrupt-controller;
750 compatible = "sirf,prima2-rtciobg",
751 "sirf-prima2-rtciobg-bus",
753 #address-cells = <1>;
755 reg = <0x18840000 0x1000>;
758 compatible = "sirf,prima2-sysrtc";
759 reg = <0x2000 0x100>;
760 interrupts = <0 52 0>;
763 compatible = "sirf,atlas7-pwrc";
764 reg = <0x3000 0x100>;
768 qspi: flash@188B0000 {
770 compatible = "sirf,atlas7-qspi-nor";
771 reg = <0x188B0000 0x10000>;
772 interrupts = <0 15 0>;
773 #address-cells = <1>;
778 compatible = "sirf,atlas7-retain";
779 reg = <0x188D0000 0x1000>;
785 compatible = "simple-bus";
786 #address-cells = <1>;
788 ranges = <0x13100000 0x13100000 0x20000>,
789 <0x10e10000 0x10e10000 0x10000>;
792 compatible = "sirf,atlas7-lcdc";
793 reg = <0x13100000 0x10000>;
794 interrupts = <0 30 0>;
798 compatible = "sirf,atlas7-vpp";
799 reg = <0x13110000 0x10000>;
800 interrupts = <0 31 0>;
805 compatible = "sirf,atlas7-lvdsc";
806 reg = <0x10e10000 0x10000>;
807 interrupts = <0 64 0>;
815 compatible = "simple-bus";
816 #address-cells = <1>;
818 ranges = <0x12000000 0x12000000 0x1000000>;
821 compatible = "powervr,sgx531";
822 reg = <0x12000000 0x1000000>;
823 interrupts = <0 6 0>;