Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright 2012 Linaro Ltd
4 */
5
6#include <dt-bindings/interrupt-controller/irq.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/clock/ste-db8500-clkout.h>
9#include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>
10#include <dt-bindings/mfd/dbx500-prcmu.h>
11#include <dt-bindings/arm/ux500_pm_domains.h>
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/thermal/thermal.h>
14
15/ {
16 #address-cells = <1>;
17 #size-cells = <1>;
18
19 /* This stablilizes the device enumeration */
20 aliases {
21 i2c0 = &i2c0;
22 i2c1 = &i2c1;
23 i2c2 = &i2c2;
24 i2c3 = &i2c3;
25 i2c4 = &i2c4;
26 spi0 = &spi0;
27 spi1 = &spi1;
28 spi2 = &spi2;
29 spi3 = &spi3;
30 serial0 = &serial0;
31 serial1 = &serial1;
32 serial2 = &serial2;
33 };
34
35 chosen {
36 };
37
38 cpus {
39 #address-cells = <1>;
40 #size-cells = <0>;
41 enable-method = "ste,dbx500-smp";
42
43 cpu-map {
44 cluster0 {
45 core0 {
46 cpu = <&CPU0>;
47 };
48 core1 {
49 cpu = <&CPU1>;
50 };
51 };
52 };
53 CPU0: cpu@300 {
54 device_type = "cpu";
55 compatible = "arm,cortex-a9";
56 reg = <0x300>;
57 clocks = <&prcmu_clk PRCMU_ARMSS>;
58 clock-names = "cpu";
59 clock-latency = <20000>;
60 #cooling-cells = <2>;
61 };
62 CPU1: cpu@301 {
63 device_type = "cpu";
64 compatible = "arm,cortex-a9";
65 reg = <0x301>;
66 };
67 };
68
69 thermal-zones {
70 /*
71 * Thermal zone for the SoC, using the thermal sensor in the
72 * PRCMU for temperature and the cpufreq driver for passive
73 * cooling.
74 */
75 cpu_thermal: cpu-thermal {
76 polling-delay-passive = <250>;
77 /*
78 * This sensor fires interrupts to update the thermal
79 * zone, so no polling is needed.
80 */
81 polling-delay = <0>;
82
83 thermal-sensors = <&thermal>;
84
85 trips {
86 cpu_alert: cpu-alert {
87 temperature = <70000>;
88 hysteresis = <2000>;
89 type = "passive";
90 };
91 cpu-crit {
92 temperature = <85000>;
93 hysteresis = <0>;
94 type = "critical";
95 };
96 };
97
98 cooling-maps {
99 trip = <&cpu_alert>;
100 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
101 contribution = <100>;
102 };
103 };
104 };
105
106 soc {
107 #address-cells = <1>;
108 #size-cells = <1>;
109 compatible = "stericsson,db8500", "simple-bus";
110 interrupt-parent = <&intc>;
111 ranges;
112
113 ptm@801ae000 {
114 compatible = "arm,coresight-etm3x", "arm,primecell";
115 reg = <0x801ae000 0x1000>;
116
117 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
118 clock-names = "apb_pclk", "atclk";
119 cpu = <&CPU0>;
120 out-ports {
121 port {
122 ptm0_out_port: endpoint {
123 remote-endpoint = <&funnel_in_port0>;
124 };
125 };
126 };
127 };
128
129 ptm@801af000 {
130 compatible = "arm,coresight-etm3x", "arm,primecell";
131 reg = <0x801af000 0x1000>;
132
133 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
134 clock-names = "apb_pclk", "atclk";
135 cpu = <&CPU1>;
136 out-ports {
137 port {
138 ptm1_out_port: endpoint {
139 remote-endpoint = <&funnel_in_port1>;
140 };
141 };
142 };
143 };
144
145 funnel@801a6000 {
146 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
147 reg = <0x801a6000 0x1000>;
148
149 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
150 clock-names = "apb_pclk", "atclk";
151 out-ports {
152 port {
153 funnel_out_port: endpoint {
154 remote-endpoint =
155 <&replicator_in_port0>;
156 };
157 };
158 };
159
160 in-ports {
161 #address-cells = <1>;
162 #size-cells = <0>;
163
164 port@0 {
165 reg = <0>;
166 funnel_in_port0: endpoint {
167 remote-endpoint = <&ptm0_out_port>;
168 };
169 };
170
171 port@1 {
172 reg = <1>;
173 funnel_in_port1: endpoint {
174 remote-endpoint = <&ptm1_out_port>;
175 };
176 };
177 };
178 };
179
180 replicator {
181 compatible = "arm,coresight-static-replicator";
182 clocks = <&prcmu_clk PRCMU_APEATCLK>;
183 clock-names = "atclk";
184
185 out-ports {
186 #address-cells = <1>;
187 #size-cells = <0>;
188
189 port@0 {
190 reg = <0>;
191 replicator_out_port0: endpoint {
192 remote-endpoint = <&tpiu_in_port>;
193 };
194 };
195 port@1 {
196 reg = <1>;
197 replicator_out_port1: endpoint {
198 remote-endpoint = <&etb_in_port>;
199 };
200 };
201 };
202
203 in-ports {
204 port {
205 replicator_in_port0: endpoint {
206 remote-endpoint = <&funnel_out_port>;
207 };
208 };
209 };
210 };
211
212 tpiu@80190000 {
213 compatible = "arm,coresight-tpiu", "arm,primecell";
214 reg = <0x80190000 0x1000>;
215
216 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
217 clock-names = "apb_pclk", "atclk";
218 in-ports {
219 port {
220 tpiu_in_port: endpoint {
221 remote-endpoint = <&replicator_out_port0>;
222 };
223 };
224 };
225 };
226
227 etb@801a4000 {
228 compatible = "arm,coresight-etb10", "arm,primecell";
229 reg = <0x801a4000 0x1000>;
230
231 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
232 clock-names = "apb_pclk", "atclk";
233 in-ports {
234 port {
235 etb_in_port: endpoint {
236 remote-endpoint = <&replicator_out_port1>;
237 };
238 };
239 };
240 };
241
242 intc: interrupt-controller@a0411000 {
243 compatible = "arm,cortex-a9-gic";
244 #interrupt-cells = <3>;
245 #address-cells = <1>;
246 interrupt-controller;
247 reg = <0xa0411000 0x1000>,
248 <0xa0410100 0x100>;
249 };
250
251 scu@a0410000 {
252 compatible = "arm,cortex-a9-scu";
253 reg = <0xa0410000 0x100>;
254 };
255
256 /*
257 * The backup RAM is used for retention during sleep
258 * and various things like spin tables
259 */
260 backupram@80150000 {
261 compatible = "ste,dbx500-backupram";
262 reg = <0x80150000 0x2000>;
263 };
264
265 L2: cache-controller {
266 compatible = "arm,pl310-cache";
267 reg = <0xa0412000 0x1000>;
268 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
269 cache-unified;
270 cache-level = <2>;
271 };
272
273 pmu {
274 compatible = "arm,cortex-a9-pmu";
275 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
276 };
277
278 pm_domains: pm_domains0 {
279 compatible = "stericsson,ux500-pm-domains";
280 #power-domain-cells = <1>;
281 };
282
283 clocks {
284 compatible = "stericsson,u8500-clks";
285 /*
286 * Registers for the CLKRST block on peripheral
287 * groups 1, 2, 3, 5, 6,
288 */
289 reg = <0x8012f000 0x1000>, <0x8011f000 0x1000>,
290 <0x8000f000 0x1000>, <0xa03ff000 0x1000>,
291 <0xa03cf000 0x1000>;
292
293 prcmu_clk: prcmu-clock {
294 #clock-cells = <1>;
295 };
296
297 prcc_pclk: prcc-periph-clock {
298 #clock-cells = <2>;
299 };
300
301 prcc_kclk: prcc-kernel-clock {
302 #clock-cells = <2>;
303 };
304
305 prcc_reset: prcc-reset-controller {
306 #reset-cells = <2>;
307 };
308
309 rtc_clk: rtc32k-clock {
310 #clock-cells = <0>;
311 };
312
313 smp_twd_clk: smp-twd-clock {
314 #clock-cells = <0>;
315 };
316
317 clkout_clk: clkout-clock {
318 /* Cell 1 id, cell 2 source, cell 3 div */
319 #clock-cells = <3>;
320 };
321 };
322
323 mtu@a03c6000 {
324 /* Nomadik System Timer */
325 compatible = "st,nomadik-mtu";
326 reg = <0xa03c6000 0x1000>;
327 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
328
329 clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>;
330 clock-names = "timclk", "apb_pclk";
331 };
332
333 timer@a0410600 {
334 compatible = "arm,cortex-a9-twd-timer";
335 reg = <0xa0410600 0x20>;
336 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
337
338 clocks = <&smp_twd_clk>;
339 };
340
341 watchdog@a0410620 {
342 compatible = "arm,cortex-a9-twd-wdt";
343 reg = <0xa0410620 0x20>;
344 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
345 clocks = <&smp_twd_clk>;
346 };
347
348 rtc@80154000 {
349 compatible = "arm,pl031", "arm,primecell";
350 reg = <0x80154000 0x1000>;
351 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
352
353 clocks = <&rtc_clk>;
354 clock-names = "apb_pclk";
355 };
356
357 gpio0: gpio@8012e000 {
358 compatible = "stericsson,db8500-gpio",
359 "st,nomadik-gpio";
360 reg = <0x8012e000 0x80>;
361 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
362 interrupt-controller;
363 #interrupt-cells = <2>;
364 st,supports-sleepmode;
365 gpio-controller;
366 #gpio-cells = <2>;
367 gpio-bank = <0>;
368 gpio-ranges = <&pinctrl 0 0 32>;
369 clocks = <&prcc_pclk 1 9>;
370 };
371
372 gpio1: gpio@8012e080 {
373 compatible = "stericsson,db8500-gpio",
374 "st,nomadik-gpio";
375 reg = <0x8012e080 0x80>;
376 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
377 interrupt-controller;
378 #interrupt-cells = <2>;
379 st,supports-sleepmode;
380 gpio-controller;
381 #gpio-cells = <2>;
382 gpio-bank = <1>;
383 gpio-ranges = <&pinctrl 0 32 5>;
384 clocks = <&prcc_pclk 1 9>;
385 };
386
387 gpio2: gpio@8000e000 {
388 compatible = "stericsson,db8500-gpio",
389 "st,nomadik-gpio";
390 reg = <0x8000e000 0x80>;
391 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
392 interrupt-controller;
393 #interrupt-cells = <2>;
394 st,supports-sleepmode;
395 gpio-controller;
396 #gpio-cells = <2>;
397 gpio-bank = <2>;
398 gpio-ranges = <&pinctrl 0 64 32>;
399 clocks = <&prcc_pclk 3 8>;
400 };
401
402 gpio3: gpio@8000e080 {
403 compatible = "stericsson,db8500-gpio",
404 "st,nomadik-gpio";
405 reg = <0x8000e080 0x80>;
406 interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
407 interrupt-controller;
408 #interrupt-cells = <2>;
409 st,supports-sleepmode;
410 gpio-controller;
411 #gpio-cells = <2>;
412 gpio-bank = <3>;
413 gpio-ranges = <&pinctrl 0 96 2>;
414 clocks = <&prcc_pclk 3 8>;
415 };
416
417 gpio4: gpio@8000e100 {
418 compatible = "stericsson,db8500-gpio",
419 "st,nomadik-gpio";
420 reg = <0x8000e100 0x80>;
421 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
422 interrupt-controller;
423 #interrupt-cells = <2>;
424 st,supports-sleepmode;
425 gpio-controller;
426 #gpio-cells = <2>;
427 gpio-bank = <4>;
428 gpio-ranges = <&pinctrl 0 128 32>;
429 clocks = <&prcc_pclk 3 8>;
430 };
431
432 gpio5: gpio@8000e180 {
433 compatible = "stericsson,db8500-gpio",
434 "st,nomadik-gpio";
435 reg = <0x8000e180 0x80>;
436 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
437 interrupt-controller;
438 #interrupt-cells = <2>;
439 st,supports-sleepmode;
440 gpio-controller;
441 #gpio-cells = <2>;
442 gpio-bank = <5>;
443 gpio-ranges = <&pinctrl 0 160 12>;
444 clocks = <&prcc_pclk 3 8>;
445 };
446
447 gpio6: gpio@8011e000 {
448 compatible = "stericsson,db8500-gpio",
449 "st,nomadik-gpio";
450 reg = <0x8011e000 0x80>;
451 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
452 interrupt-controller;
453 #interrupt-cells = <2>;
454 st,supports-sleepmode;
455 gpio-controller;
456 #gpio-cells = <2>;
457 gpio-bank = <6>;
458 gpio-ranges = <&pinctrl 0 192 32>;
459 clocks = <&prcc_pclk 2 11>;
460 };
461
462 gpio7: gpio@8011e080 {
463 compatible = "stericsson,db8500-gpio",
464 "st,nomadik-gpio";
465 reg = <0x8011e080 0x80>;
466 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
467 interrupt-controller;
468 #interrupt-cells = <2>;
469 st,supports-sleepmode;
470 gpio-controller;
471 #gpio-cells = <2>;
472 gpio-bank = <7>;
473 gpio-ranges = <&pinctrl 0 224 7>;
474 clocks = <&prcc_pclk 2 11>;
475 };
476
477 gpio8: gpio@a03fe000 {
478 compatible = "stericsson,db8500-gpio",
479 "st,nomadik-gpio";
480 reg = <0xa03fe000 0x80>;
481 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
482 interrupt-controller;
483 #interrupt-cells = <2>;
484 st,supports-sleepmode;
485 gpio-controller;
486 #gpio-cells = <2>;
487 gpio-bank = <8>;
488 gpio-ranges = <&pinctrl 0 256 12>;
489 clocks = <&prcc_pclk 5 1>;
490 };
491
492 pinctrl: pinctrl {
493 compatible = "stericsson,db8500-pinctrl";
494 nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>,
495 <&gpio4>, <&gpio5>, <&gpio6>, <&gpio7>,
496 <&gpio8>;
497 prcm = <&prcmu>;
498 };
499
500 usb_per5@a03e0000 {
501 compatible = "stericsson,db8500-musb";
502 reg = <0xa03e0000 0x10000>;
503 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
504 interrupt-names = "mc";
505
506 dr_mode = "otg";
507
508 dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */
509 <&dma 38 0 0x0>, /* Logical - MemToDev */
510 <&dma 37 0 0x2>, /* Logical - DevToMem */
511 <&dma 37 0 0x0>, /* Logical - MemToDev */
512 <&dma 36 0 0x2>, /* Logical - DevToMem */
513 <&dma 36 0 0x0>, /* Logical - MemToDev */
514 <&dma 19 0 0x2>, /* Logical - DevToMem */
515 <&dma 19 0 0x0>, /* Logical - MemToDev */
516 <&dma 18 0 0x2>, /* Logical - DevToMem */
517 <&dma 18 0 0x0>, /* Logical - MemToDev */
518 <&dma 17 0 0x2>, /* Logical - DevToMem */
519 <&dma 17 0 0x0>, /* Logical - MemToDev */
520 <&dma 16 0 0x2>, /* Logical - DevToMem */
521 <&dma 16 0 0x0>, /* Logical - MemToDev */
522 <&dma 39 0 0x2>, /* Logical - DevToMem */
523 <&dma 39 0 0x0>; /* Logical - MemToDev */
524
525 dma-names = "iep_1_9", "oep_1_9",
526 "iep_2_10", "oep_2_10",
527 "iep_3_11", "oep_3_11",
528 "iep_4_12", "oep_4_12",
529 "iep_5_13", "oep_5_13",
530 "iep_6_14", "oep_6_14",
531 "iep_7_15", "oep_7_15",
532 "iep_8", "oep_8";
533
534 clocks = <&prcc_pclk 5 0>;
535 };
536
537 dma: dma-controller@801C0000 {
538 compatible = "stericsson,db8500-dma40", "stericsson,dma40";
539 reg = <0x801C0000 0x1000 0x40010000 0x800>;
540 reg-names = "base", "lcpa";
541 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
542
543 #dma-cells = <3>;
544 memcpy-channels = <56 57 58 59 60>;
545
546 clocks = <&prcmu_clk PRCMU_DMACLK>;
547 };
548
549 prcmu: prcmu@80157000 {
550 compatible = "stericsson,db8500-prcmu", "syscon";
551 reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
552 reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
553 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
554 #address-cells = <1>;
555 #size-cells = <1>;
556 interrupt-controller;
557 #interrupt-cells = <2>;
558 ranges;
559
560 prcmu-timer-4@80157450 {
561 compatible = "stericsson,db8500-prcmu-timer-4";
562 reg = <0x80157450 0xC>;
563 };
564
565 thermal: thermal@801573c0 {
566 compatible = "stericsson,db8500-thermal";
567 reg = <0x801573c0 0x40>;
568 interrupt-parent = <&prcmu>;
569 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>,
570 <22 IRQ_TYPE_LEVEL_HIGH>;
571 interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
572 #thermal-sensor-cells = <0>;
573 };
574
575 db8500-prcmu-regulators {
576 compatible = "stericsson,db8500-prcmu-regulator";
577
578 // DB8500_REGULATOR_VAPE
579 db8500_vape_reg: db8500_vape {
580 regulator-always-on;
581 };
582
583 // DB8500_REGULATOR_VARM
584 db8500_varm_reg: db8500_varm {
585 };
586
587 // DB8500_REGULATOR_VMODEM
588 db8500_vmodem_reg: db8500_vmodem {
589 };
590
591 // DB8500_REGULATOR_VPLL
592 db8500_vpll_reg: db8500_vpll {
593 };
594
595 // DB8500_REGULATOR_VSMPS1
596 db8500_vsmps1_reg: db8500_vsmps1 {
597 };
598
599 // DB8500_REGULATOR_VSMPS2
600 db8500_vsmps2_reg: db8500_vsmps2 {
601 };
602
603 // DB8500_REGULATOR_VSMPS3
604 db8500_vsmps3_reg: db8500_vsmps3 {
605 };
606
607 // DB8500_REGULATOR_VRF1
608 db8500_vrf1_reg: db8500_vrf1 {
609 };
610
611 // DB8500_REGULATOR_SWITCH_SVAMMDSP
612 db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
613 };
614
615 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET
616 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
617 };
618
619 // DB8500_REGULATOR_SWITCH_SVAPIPE
620 db8500_sva_pipe_reg: db8500_sva_pipe {
621 };
622
623 // DB8500_REGULATOR_SWITCH_SIAMMDSP
624 db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
625 };
626
627 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET
628 db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
629 };
630
631 // DB8500_REGULATOR_SWITCH_SIAPIPE
632 db8500_sia_pipe_reg: db8500_sia_pipe {
633 };
634
635 // DB8500_REGULATOR_SWITCH_SGA
636 db8500_sga_reg: db8500_sga {
637 vin-supply = <&db8500_vape_reg>;
638 };
639
640 // DB8500_REGULATOR_SWITCH_B2R2_MCDE
641 db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
642 vin-supply = <&db8500_vape_reg>;
643 };
644
645 // DB8500_REGULATOR_SWITCH_ESRAM12
646 db8500_esram12_reg: db8500_esram12 {
647 };
648
649 // DB8500_REGULATOR_SWITCH_ESRAM12RET
650 db8500_esram12_ret_reg: db8500_esram12_ret {
651 };
652
653 // DB8500_REGULATOR_SWITCH_ESRAM34
654 db8500_esram34_reg: db8500_esram34 {
655 };
656
657 // DB8500_REGULATOR_SWITCH_ESRAM34RET
658 db8500_esram34_ret_reg: db8500_esram34_ret {
659 };
660 };
661 };
662
663 i2c0: i2c@80004000 {
664 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
665 reg = <0x80004000 0x1000>;
666 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
667
668 #address-cells = <1>;
669 #size-cells = <0>;
670
671 clock-frequency = <400000>;
672 clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
673 clock-names = "i2cclk", "apb_pclk";
674 power-domains = <&pm_domains DOMAIN_VAPE>;
675 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;
676
677 status = "disabled";
678 };
679
680 i2c1: i2c@80122000 {
681 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
682 reg = <0x80122000 0x1000>;
683 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
684
685 #address-cells = <1>;
686 #size-cells = <0>;
687
688 clock-frequency = <400000>;
689
690 clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
691 clock-names = "i2cclk", "apb_pclk";
692 power-domains = <&pm_domains DOMAIN_VAPE>;
693 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C1>;
694
695 status = "disabled";
696 };
697
698 i2c2: i2c@80128000 {
699 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
700 reg = <0x80128000 0x1000>;
701 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
702
703 #address-cells = <1>;
704 #size-cells = <0>;
705
706 clock-frequency = <400000>;
707
708 clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
709 clock-names = "i2cclk", "apb_pclk";
710 power-domains = <&pm_domains DOMAIN_VAPE>;
711 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C2>;
712
713 status = "disabled";
714 };
715
716 i2c3: i2c@80110000 {
717 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
718 reg = <0x80110000 0x1000>;
719 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
720
721 #address-cells = <1>;
722 #size-cells = <0>;
723
724 clock-frequency = <400000>;
725
726 clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
727 clock-names = "i2cclk", "apb_pclk";
728 power-domains = <&pm_domains DOMAIN_VAPE>;
729 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_I2C3>;
730
731 status = "disabled";
732 };
733
734 i2c4: i2c@8012a000 {
735 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
736 reg = <0x8012a000 0x1000>;
737 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
738
739 #address-cells = <1>;
740 #size-cells = <0>;
741
742 clock-frequency = <400000>;
743
744 clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
745 clock-names = "i2cclk", "apb_pclk";
746 power-domains = <&pm_domains DOMAIN_VAPE>;
747 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_I2C4>;
748
749 status = "disabled";
750 };
751
752 ssp0: spi@80002000 {
753 compatible = "arm,pl022", "arm,primecell";
754 reg = <0x80002000 0x1000>;
755 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
756 #address-cells = <1>;
757 #size-cells = <0>;
758 clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>;
759 clock-names = "sspclk", "apb_pclk";
760 dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
761 <&dma 8 0 0x0>; /* Logical - MemToDev */
762 dma-names = "rx", "tx";
763 power-domains = <&pm_domains DOMAIN_VAPE>;
764 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SSP0>;
765
766 status = "disabled";
767 };
768
769 ssp1: spi@80003000 {
770 compatible = "arm,pl022", "arm,primecell";
771 reg = <0x80003000 0x1000>;
772 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
773 #address-cells = <1>;
774 #size-cells = <0>;
775 clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>;
776 clock-names = "sspclk", "apb_pclk";
777 dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
778 <&dma 9 0 0x0>; /* Logical - MemToDev */
779 dma-names = "rx", "tx";
780 power-domains = <&pm_domains DOMAIN_VAPE>;
781 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SSP1>;
782
783 status = "disabled";
784 };
785
786 spi0: spi@8011a000 {
787 compatible = "arm,pl022", "arm,primecell";
788 reg = <0x8011a000 0x1000>;
789 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
790 #address-cells = <1>;
791 #size-cells = <0>;
792 /* Same clock wired to kernel and pclk */
793 clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>;
794 clock-names = "sspclk", "apb_pclk";
795 dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
796 <&dma 0 0 0x0>; /* Logical - MemToDev */
797 dma-names = "rx", "tx";
798 power-domains = <&pm_domains DOMAIN_VAPE>;
799
800 status = "disabled";
801 };
802
803 spi1: spi@80112000 {
804 compatible = "arm,pl022", "arm,primecell";
805 reg = <0x80112000 0x1000>;
806 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
807 #address-cells = <1>;
808 #size-cells = <0>;
809 /* Same clock wired to kernel and pclk */
810 clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>;
811 clock-names = "sspclk", "apb_pclk";
812 dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
813 <&dma 35 0 0x0>; /* Logical - MemToDev */
814 dma-names = "rx", "tx";
815 power-domains = <&pm_domains DOMAIN_VAPE>;
816
817 status = "disabled";
818 };
819
820 spi2: spi@80111000 {
821 compatible = "arm,pl022", "arm,primecell";
822 reg = <0x80111000 0x1000>;
823 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
824 #address-cells = <1>;
825 #size-cells = <0>;
826 /* Same clock wired to kernel and pclk */
827 clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>;
828 clock-names = "sspclk", "apb_pclk";
829 dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
830 <&dma 33 0 0x0>; /* Logical - MemToDev */
831 dma-names = "rx", "tx";
832 power-domains = <&pm_domains DOMAIN_VAPE>;
833
834 status = "disabled";
835 };
836
837 spi3: spi@80129000 {
838 compatible = "arm,pl022", "arm,primecell";
839 reg = <0x80129000 0x1000>;
840 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
841 #address-cells = <1>;
842 #size-cells = <0>;
843 /* Same clock wired to kernel and pclk */
844 clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>;
845 clock-names = "sspclk", "apb_pclk";
846 dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
847 <&dma 40 0 0x0>; /* Logical - MemToDev */
848 dma-names = "rx", "tx";
849 power-domains = <&pm_domains DOMAIN_VAPE>;
850 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_SPI3>;
851
852 status = "disabled";
853 };
854
855 serial0: uart@80120000 {
856 compatible = "arm,pl011", "arm,primecell";
857 reg = <0x80120000 0x1000>;
858 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
859
860 dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
861 <&dma 13 0 0x0>; /* Logical - MemToDev */
862 dma-names = "rx", "tx";
863
864 clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
865 clock-names = "uart", "apb_pclk";
866 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_UART0>;
867
868 status = "disabled";
869 };
870
871 serial1: uart@80121000 {
872 compatible = "arm,pl011", "arm,primecell";
873 reg = <0x80121000 0x1000>;
874 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
875
876 dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */
877 <&dma 12 0 0x0>; /* Logical - MemToDev */
878 dma-names = "rx", "tx";
879
880 clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
881 clock-names = "uart", "apb_pclk";
882 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_UART1>;
883
884 status = "disabled";
885 };
886
887 serial2: uart@80007000 {
888 compatible = "arm,pl011", "arm,primecell";
889 reg = <0x80007000 0x1000>;
890 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
891
892 dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */
893 <&dma 11 0 0x0>; /* Logical - MemToDev */
894 dma-names = "rx", "tx";
895
896 clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
897 clock-names = "uart", "apb_pclk";
898 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_UART2>;
899
900 status = "disabled";
901 };
902
903 mmc@80126000 {
904 compatible = "arm,pl18x", "arm,primecell";
905 reg = <0x80126000 0x1000>;
906 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
907
908 dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
909 <&dma 29 0 0x0>; /* Logical - MemToDev */
910 dma-names = "rx", "tx";
911
912 clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
913 clock-names = "sdi", "apb_pclk";
914 power-domains = <&pm_domains DOMAIN_VAPE>;
915 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_SDI0>;
916
917 status = "disabled";
918 };
919
920 mmc@80118000 {
921 compatible = "arm,pl18x", "arm,primecell";
922 reg = <0x80118000 0x1000>;
923 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
924
925 dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */
926 <&dma 32 0 0x0>; /* Logical - MemToDev */
927 dma-names = "rx", "tx";
928
929 clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
930 clock-names = "sdi", "apb_pclk";
931 power-domains = <&pm_domains DOMAIN_VAPE>;
932 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI1>;
933
934 status = "disabled";
935 };
936
937 mmc@80005000 {
938 compatible = "arm,pl18x", "arm,primecell";
939 reg = <0x80005000 0x1000>;
940 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
941
942 dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */
943 <&dma 28 0 0x0>; /* Logical - MemToDev */
944 dma-names = "rx", "tx";
945
946 clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
947 clock-names = "sdi", "apb_pclk";
948 power-domains = <&pm_domains DOMAIN_VAPE>;
949 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SDI2>;
950
951 status = "disabled";
952 };
953
954 mmc@80119000 {
955 compatible = "arm,pl18x", "arm,primecell";
956 reg = <0x80119000 0x1000>;
957 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
958
959 dmas = <&dma 41 0 0x2>, /* Logical - DevToMem */
960 <&dma 41 0 0x0>; /* Logical - MemToDev */
961 dma-names = "rx", "tx";
962
963 clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
964 clock-names = "sdi", "apb_pclk";
965 power-domains = <&pm_domains DOMAIN_VAPE>;
966 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI3>;
967
968 status = "disabled";
969 };
970
971 mmc@80114000 {
972 compatible = "arm,pl18x", "arm,primecell";
973 reg = <0x80114000 0x1000>;
974 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
975
976 dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */
977 <&dma 42 0 0x0>; /* Logical - MemToDev */
978 dma-names = "rx", "tx";
979
980 clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
981 clock-names = "sdi", "apb_pclk";
982 power-domains = <&pm_domains DOMAIN_VAPE>;
983 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_SDI4>;
984
985 status = "disabled";
986 };
987
988 mmc@80008000 {
989 compatible = "arm,pl18x", "arm,primecell";
990 reg = <0x80008000 0x1000>;
991 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
992
993 dmas = <&dma 43 0 0x2>, /* Logical - DevToMem */
994 <&dma 43 0 0x0>; /* Logical - MemToDev */
995 dma-names = "rx", "tx";
996
997 clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
998 clock-names = "sdi", "apb_pclk";
999 power-domains = <&pm_domains DOMAIN_VAPE>;
1000 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_SDI5>;
1001
1002 status = "disabled";
1003 };
1004
1005 sound {
1006 compatible = "stericsson,snd-soc-mop500";
1007 stericsson,cpu-dai = <&msp1 &msp3>;
1008 };
1009
1010 msp0: msp@80123000 {
1011 compatible = "stericsson,ux500-msp-i2s";
1012 reg = <0x80123000 0x1000>;
1013 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
1014 v-ape-supply = <&db8500_vape_reg>;
1015
1016 dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */
1017 <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */
1018 dma-names = "rx", "tx";
1019
1020 clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
1021 clock-names = "msp", "apb_pclk";
1022 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP0>;
1023
1024 status = "disabled";
1025 };
1026
1027 msp1: msp@80124000 {
1028 compatible = "stericsson,ux500-msp-i2s";
1029 reg = <0x80124000 0x1000>;
1030 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1031 v-ape-supply = <&db8500_vape_reg>;
1032
1033 /* This DMA channel only exist on DB8500 v1 */
1034 dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */
1035 dma-names = "tx";
1036
1037 clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
1038 clock-names = "msp", "apb_pclk";
1039 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP1>;
1040
1041 status = "disabled";
1042 };
1043
1044 // HDMI sound
1045 msp2: msp@80117000 {
1046 compatible = "stericsson,ux500-msp-i2s";
1047 reg = <0x80117000 0x1000>;
1048 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1049 v-ape-supply = <&db8500_vape_reg>;
1050
1051 dmas = <&dma 14 0 0x12>, /* Logical - DevToMem - HighPrio */
1052 <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev
1053 HighPrio - Fixed */
1054 dma-names = "rx", "tx";
1055
1056 clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
1057 clock-names = "msp", "apb_pclk";
1058 resets = <&prcc_reset DB8500_PRCC_2 DB8500_PRCC_2_RESET_MSP2>;
1059
1060 status = "disabled";
1061 };
1062
1063 msp3: msp@80125000 {
1064 compatible = "stericsson,ux500-msp-i2s";
1065 reg = <0x80125000 0x1000>;
1066 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1067 v-ape-supply = <&db8500_vape_reg>;
1068
1069 /* This DMA channel only exist on DB8500 v2 */
1070 dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */
1071 dma-names = "rx";
1072
1073 clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
1074 clock-names = "msp", "apb_pclk";
1075 resets = <&prcc_reset DB8500_PRCC_1 DB8500_PRCC_1_RESET_MSP3>;
1076
1077 status = "disabled";
1078 };
1079
1080 external-bus@50000000 {
1081 compatible = "simple-bus";
1082 reg = <0x50000000 0x4000000>;
1083 #address-cells = <1>;
1084 #size-cells = <1>;
1085 ranges = <0 0x50000000 0x4000000>;
1086 status = "disabled";
1087 };
1088
1089 gpu@a0300000 {
1090 /*
1091 * This block is referred to as "Smart Graphics Adapter SGA500"
1092 * in documentation but is in practice a pretty straight-forward
1093 * MALI-400 GPU block.
1094 */
1095 compatible = "stericsson,db8500-mali", "arm,mali-400";
1096 reg = <0xa0300000 0x10000>;
1097 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1098 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1099 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1100 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1101 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1102 interrupt-names = "gp",
1103 "gpmmu",
1104 "pp0",
1105 "ppmmu0",
1106 "combined";
1107 clocks = <&prcmu_clk PRCMU_ACLK>, <&prcmu_clk PRCMU_SGACLK>;
1108 clock-names = "bus", "core";
1109 mali-supply = <&db8500_sga_reg>;
1110 power-domains = <&pm_domains DOMAIN_VAPE>;
1111 };
1112
1113 mcde@a0350000 {
1114 compatible = "ste,mcde";
1115 reg = <0xa0350000 0x1000>;
1116 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1117 epod-supply = <&db8500_b2r2_mcde_reg>;
1118 clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
1119 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
1120 <&prcmu_clk PRCMU_PLLDSI>; /* HDMI clock */
1121 clock-names = "mcde", "lcd", "hdmi";
1122 #address-cells = <1>;
1123 #size-cells = <1>;
1124 ranges;
1125 status = "disabled";
1126
1127 dsi0: dsi@a0351000 {
1128 compatible = "ste,mcde-dsi";
1129 reg = <0xa0351000 0x1000>;
1130 clocks = <&prcmu_clk PRCMU_DSI0CLK>, <&prcmu_clk PRCMU_DSI0ESCCLK>;
1131 clock-names = "hs", "lp";
1132 #address-cells = <1>;
1133 #size-cells = <0>;
1134 };
1135 dsi1: dsi@a0352000 {
1136 compatible = "ste,mcde-dsi";
1137 reg = <0xa0352000 0x1000>;
1138 clocks = <&prcmu_clk PRCMU_DSI1CLK>, <&prcmu_clk PRCMU_DSI1ESCCLK>;
1139 clock-names = "hs", "lp";
1140 #address-cells = <1>;
1141 #size-cells = <0>;
1142 };
1143 dsi2: dsi@a0353000 {
1144 compatible = "ste,mcde-dsi";
1145 reg = <0xa0353000 0x1000>;
1146 /* This DSI port only has the Low Power / Energy Save clock */
1147 clocks = <&prcmu_clk PRCMU_DSI2ESCCLK>;
1148 clock-names = "lp";
1149 #address-cells = <1>;
1150 #size-cells = <0>;
1151 };
1152 };
1153
1154 cryp@a03cb000 {
1155 compatible = "stericsson,ux500-cryp";
1156 reg = <0xa03cb000 0x1000>;
1157 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1158 clocks = <&prcc_pclk 6 1>;
1159 power-domains = <&pm_domains DOMAIN_VAPE>;
1160 };
1161
1162 hash@a03c2000 {
1163 compatible = "stericsson,ux500-hash";
1164 reg = <0xa03c2000 0x1000>;
1165 clocks = <&prcc_pclk 6 2>;
1166 power-domains = <&pm_domains DOMAIN_VAPE>;
1167 };
1168 };
1169};