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