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