Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / arm / juno-base.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 #include "juno-clocks.dtsi"
3 #include "juno-motherboard.dtsi"
4
5 / {
6         /*
7          *  Devices shared by all Juno boards
8          */
9
10         memtimer: timer@2a810000 {
11                 compatible = "arm,armv7-timer-mem";
12                 reg = <0x0 0x2a810000 0x0 0x10000>;
13                 clock-frequency = <50000000>;
14                 #address-cells = <1>;
15                 #size-cells = <1>;
16                 ranges = <0 0x0 0x2a820000 0x20000>;
17                 status = "disabled";
18                 frame@2a830000 {
19                         frame-number = <1>;
20                         interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
21                         reg = <0x10000 0x10000>;
22                 };
23         };
24
25         mailbox: mhu@2b1f0000 {
26                 compatible = "arm,mhu", "arm,primecell";
27                 reg = <0x0 0x2b1f0000 0x0 0x1000>;
28                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
29                              <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
30                 interrupt-names = "mhu_lpri_rx",
31                                   "mhu_hpri_rx";
32                 #mbox-cells = <1>;
33                 clocks = <&soc_refclk100mhz>;
34                 clock-names = "apb_pclk";
35         };
36
37         smmu_gpu: iommu@2b400000 {
38                 compatible = "arm,mmu-400", "arm,smmu-v1";
39                 reg = <0x0 0x2b400000 0x0 0x10000>;
40                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
41                              <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
42                 #iommu-cells = <1>;
43                 #global-interrupts = <1>;
44                 power-domains = <&scpi_devpd 1>;
45                 dma-coherent;
46                 status = "disabled";
47         };
48
49         smmu_pcie: iommu@2b500000 {
50                 compatible = "arm,mmu-401", "arm,smmu-v1";
51                 reg = <0x0 0x2b500000 0x0 0x10000>;
52                 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
53                              <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
54                 #iommu-cells = <1>;
55                 #global-interrupts = <1>;
56                 dma-coherent;
57                 status = "disabled";
58         };
59
60         smmu_etr: iommu@2b600000 {
61                 compatible = "arm,mmu-401", "arm,smmu-v1";
62                 reg = <0x0 0x2b600000 0x0 0x10000>;
63                 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
64                              <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
65                 #iommu-cells = <1>;
66                 #global-interrupts = <1>;
67                 dma-coherent;
68                 power-domains = <&scpi_devpd 0>;
69         };
70
71         gic: interrupt-controller@2c010000 {
72                 compatible = "arm,gic-400", "arm,cortex-a15-gic";
73                 reg = <0x0 0x2c010000 0 0x1000>,
74                       <0x0 0x2c02f000 0 0x2000>,
75                       <0x0 0x2c04f000 0 0x2000>,
76                       <0x0 0x2c06f000 0 0x2000>;
77                 #address-cells = <1>;
78                 #interrupt-cells = <3>;
79                 #size-cells = <1>;
80                 interrupt-controller;
81                 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
82                 ranges = <0 0 0x2c1c0000 0x40000>;
83
84                 v2m_0: v2m@0 {
85                         compatible = "arm,gic-v2m-frame";
86                         msi-controller;
87                         reg = <0 0x10000>;
88                 };
89
90                 v2m@10000 {
91                         compatible = "arm,gic-v2m-frame";
92                         msi-controller;
93                         reg = <0x10000 0x10000>;
94                 };
95
96                 v2m@20000 {
97                         compatible = "arm,gic-v2m-frame";
98                         msi-controller;
99                         reg = <0x20000 0x10000>;
100                 };
101
102                 v2m@30000 {
103                         compatible = "arm,gic-v2m-frame";
104                         msi-controller;
105                         reg = <0x30000 0x10000>;
106                 };
107         };
108
109         timer {
110                 compatible = "arm,armv8-timer";
111                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
112                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
113                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
114                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
115         };
116
117         /*
118          * Juno TRMs specify the size for these coresight components as 64K.
119          * The actual size is just 4K though 64K is reserved. Access to the
120          * unmapped reserved region results in a DECERR response.
121          */
122         etf@20010000 { /* etf0 */
123                 compatible = "arm,coresight-tmc", "arm,primecell";
124                 reg = <0 0x20010000 0 0x1000>;
125
126                 clocks = <&soc_smc50mhz>;
127                 clock-names = "apb_pclk";
128                 power-domains = <&scpi_devpd 0>;
129
130                 in-ports {
131                         port {
132                                 etf0_in_port: endpoint {
133                                         remote-endpoint = <&main_funnel_out_port>;
134                                 };
135                         };
136                 };
137
138                 out-ports {
139                         port {
140                                 etf0_out_port: endpoint {
141                                 };
142                         };
143                 };
144         };
145
146         tpiu@20030000 {
147                 compatible = "arm,coresight-tpiu", "arm,primecell";
148                 reg = <0 0x20030000 0 0x1000>;
149
150                 clocks = <&soc_smc50mhz>;
151                 clock-names = "apb_pclk";
152                 power-domains = <&scpi_devpd 0>;
153                 in-ports {
154                         port {
155                                 tpiu_in_port: endpoint {
156                                         remote-endpoint = <&replicator_out_port0>;
157                                 };
158                         };
159                 };
160         };
161
162         /* main funnel on Juno r0, cssys0 funnel on Juno r1/r2 as per TRM*/
163         main_funnel: funnel@20040000 {
164                 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
165                 reg = <0 0x20040000 0 0x1000>;
166
167                 clocks = <&soc_smc50mhz>;
168                 clock-names = "apb_pclk";
169                 power-domains = <&scpi_devpd 0>;
170
171                 out-ports {
172                         port {
173                                 main_funnel_out_port: endpoint {
174                                         remote-endpoint = <&etf0_in_port>;
175                                 };
176                         };
177                 };
178
179                 main_funnel_in_ports: in-ports {
180                         #address-cells = <1>;
181                         #size-cells = <0>;
182
183                         port@0 {
184                                 reg = <0>;
185                                 main_funnel_in_port0: endpoint {
186                                         remote-endpoint = <&cluster0_funnel_out_port>;
187                                 };
188                         };
189
190                         port@1 {
191                                 reg = <1>;
192                                 main_funnel_in_port1: endpoint {
193                                         remote-endpoint = <&cluster1_funnel_out_port>;
194                                 };
195                         };
196                 };
197         };
198
199         etr@20070000 {
200                 compatible = "arm,coresight-tmc", "arm,primecell";
201                 reg = <0 0x20070000 0 0x1000>;
202                 iommus = <&smmu_etr 0>;
203
204                 clocks = <&soc_smc50mhz>;
205                 clock-names = "apb_pclk";
206                 power-domains = <&scpi_devpd 0>;
207                 arm,scatter-gather;
208                 in-ports {
209                         port {
210                                 etr_in_port: endpoint {
211                                         remote-endpoint = <&replicator_out_port1>;
212                                 };
213                         };
214                 };
215         };
216
217         stm@20100000 {
218                 compatible = "arm,coresight-stm", "arm,primecell";
219                 reg = <0 0x20100000 0 0x1000>,
220                       <0 0x28000000 0 0x1000000>;
221                 reg-names = "stm-base", "stm-stimulus-base";
222
223                 clocks = <&soc_smc50mhz>;
224                 clock-names = "apb_pclk";
225                 power-domains = <&scpi_devpd 0>;
226                 out-ports {
227                         port {
228                                 stm_out_port: endpoint {
229                                 };
230                         };
231                 };
232         };
233
234         replicator@20120000 {
235                 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
236                 reg = <0 0x20120000 0 0x1000>;
237
238                 clocks = <&soc_smc50mhz>;
239                 clock-names = "apb_pclk";
240                 power-domains = <&scpi_devpd 0>;
241
242                 out-ports {
243                         #address-cells = <1>;
244                         #size-cells = <0>;
245
246                         /* replicator output ports */
247                         port@0 {
248                                 reg = <0>;
249                                 replicator_out_port0: endpoint {
250                                         remote-endpoint = <&tpiu_in_port>;
251                                 };
252                         };
253
254                         port@1 {
255                                 reg = <1>;
256                                 replicator_out_port1: endpoint {
257                                         remote-endpoint = <&etr_in_port>;
258                                 };
259                         };
260                 };
261                 in-ports {
262                         port {
263                                 replicator_in_port0: endpoint {
264                                 };
265                         };
266                 };
267         };
268
269         cpu_debug0: cpu-debug@22010000 {
270                 compatible = "arm,coresight-cpu-debug", "arm,primecell";
271                 reg = <0x0 0x22010000 0x0 0x1000>;
272
273                 clocks = <&soc_smc50mhz>;
274                 clock-names = "apb_pclk";
275                 power-domains = <&scpi_devpd 0>;
276         };
277
278         etm0: etm@22040000 {
279                 compatible = "arm,coresight-etm4x", "arm,primecell";
280                 reg = <0 0x22040000 0 0x1000>;
281
282                 clocks = <&soc_smc50mhz>;
283                 clock-names = "apb_pclk";
284                 power-domains = <&scpi_devpd 0>;
285                 out-ports {
286                         port {
287                                 cluster0_etm0_out_port: endpoint {
288                                         remote-endpoint = <&cluster0_funnel_in_port0>;
289                                 };
290                         };
291                 };
292         };
293
294         funnel@220c0000 { /* cluster0 funnel */
295                 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
296                 reg = <0 0x220c0000 0 0x1000>;
297
298                 clocks = <&soc_smc50mhz>;
299                 clock-names = "apb_pclk";
300                 power-domains = <&scpi_devpd 0>;
301                 out-ports {
302                         port {
303                                 cluster0_funnel_out_port: endpoint {
304                                         remote-endpoint = <&main_funnel_in_port0>;
305                                 };
306                         };
307                 };
308
309                 in-ports {
310                         #address-cells = <1>;
311                         #size-cells = <0>;
312
313                         port@0 {
314                                 reg = <0>;
315                                 cluster0_funnel_in_port0: endpoint {
316                                         remote-endpoint = <&cluster0_etm0_out_port>;
317                                 };
318                         };
319
320                         port@1 {
321                                 reg = <1>;
322                                 cluster0_funnel_in_port1: endpoint {
323                                         remote-endpoint = <&cluster0_etm1_out_port>;
324                                 };
325                         };
326                 };
327         };
328
329         cpu_debug1: cpu-debug@22110000 {
330                 compatible = "arm,coresight-cpu-debug", "arm,primecell";
331                 reg = <0x0 0x22110000 0x0 0x1000>;
332
333                 clocks = <&soc_smc50mhz>;
334                 clock-names = "apb_pclk";
335                 power-domains = <&scpi_devpd 0>;
336         };
337
338         etm1: etm@22140000 {
339                 compatible = "arm,coresight-etm4x", "arm,primecell";
340                 reg = <0 0x22140000 0 0x1000>;
341
342                 clocks = <&soc_smc50mhz>;
343                 clock-names = "apb_pclk";
344                 power-domains = <&scpi_devpd 0>;
345                 out-ports {
346                         port {
347                                 cluster0_etm1_out_port: endpoint {
348                                         remote-endpoint = <&cluster0_funnel_in_port1>;
349                                 };
350                         };
351                 };
352         };
353
354         cpu_debug2: cpu-debug@23010000 {
355                 compatible = "arm,coresight-cpu-debug", "arm,primecell";
356                 reg = <0x0 0x23010000 0x0 0x1000>;
357
358                 clocks = <&soc_smc50mhz>;
359                 clock-names = "apb_pclk";
360                 power-domains = <&scpi_devpd 0>;
361         };
362
363         etm2: etm@23040000 {
364                 compatible = "arm,coresight-etm4x", "arm,primecell";
365                 reg = <0 0x23040000 0 0x1000>;
366
367                 clocks = <&soc_smc50mhz>;
368                 clock-names = "apb_pclk";
369                 power-domains = <&scpi_devpd 0>;
370                 out-ports {
371                         port {
372                                 cluster1_etm0_out_port: endpoint {
373                                         remote-endpoint = <&cluster1_funnel_in_port0>;
374                                 };
375                         };
376                 };
377         };
378
379         funnel@230c0000 { /* cluster1 funnel */
380                 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
381                 reg = <0 0x230c0000 0 0x1000>;
382
383                 clocks = <&soc_smc50mhz>;
384                 clock-names = "apb_pclk";
385                 power-domains = <&scpi_devpd 0>;
386                 out-ports {
387                         port {
388                                 cluster1_funnel_out_port: endpoint {
389                                         remote-endpoint = <&main_funnel_in_port1>;
390                                 };
391                         };
392                 };
393
394                 in-ports {
395                         #address-cells = <1>;
396                         #size-cells = <0>;
397
398                         port@0 {
399                                 reg = <0>;
400                                 cluster1_funnel_in_port0: endpoint {
401                                         remote-endpoint = <&cluster1_etm0_out_port>;
402                                 };
403                         };
404
405                         port@1 {
406                                 reg = <1>;
407                                 cluster1_funnel_in_port1: endpoint {
408                                         remote-endpoint = <&cluster1_etm1_out_port>;
409                                 };
410                         };
411                         port@2 {
412                                 reg = <2>;
413                                 cluster1_funnel_in_port2: endpoint {
414                                         remote-endpoint = <&cluster1_etm2_out_port>;
415                                 };
416                         };
417                         port@3 {
418                                 reg = <3>;
419                                 cluster1_funnel_in_port3: endpoint {
420                                         remote-endpoint = <&cluster1_etm3_out_port>;
421                                 };
422                         };
423                 };
424         };
425
426         cpu_debug3: cpu-debug@23110000 {
427                 compatible = "arm,coresight-cpu-debug", "arm,primecell";
428                 reg = <0x0 0x23110000 0x0 0x1000>;
429
430                 clocks = <&soc_smc50mhz>;
431                 clock-names = "apb_pclk";
432                 power-domains = <&scpi_devpd 0>;
433         };
434
435         etm3: etm@23140000 {
436                 compatible = "arm,coresight-etm4x", "arm,primecell";
437                 reg = <0 0x23140000 0 0x1000>;
438
439                 clocks = <&soc_smc50mhz>;
440                 clock-names = "apb_pclk";
441                 power-domains = <&scpi_devpd 0>;
442                 out-ports {
443                         port {
444                                 cluster1_etm1_out_port: endpoint {
445                                         remote-endpoint = <&cluster1_funnel_in_port1>;
446                                 };
447                         };
448                 };
449         };
450
451         cpu_debug4: cpu-debug@23210000 {
452                 compatible = "arm,coresight-cpu-debug", "arm,primecell";
453                 reg = <0x0 0x23210000 0x0 0x1000>;
454
455                 clocks = <&soc_smc50mhz>;
456                 clock-names = "apb_pclk";
457                 power-domains = <&scpi_devpd 0>;
458         };
459
460         etm4: etm@23240000 {
461                 compatible = "arm,coresight-etm4x", "arm,primecell";
462                 reg = <0 0x23240000 0 0x1000>;
463
464                 clocks = <&soc_smc50mhz>;
465                 clock-names = "apb_pclk";
466                 power-domains = <&scpi_devpd 0>;
467                 out-ports {
468                         port {
469                                 cluster1_etm2_out_port: endpoint {
470                                         remote-endpoint = <&cluster1_funnel_in_port2>;
471                                 };
472                         };
473                 };
474         };
475
476         cpu_debug5: cpu-debug@23310000 {
477                 compatible = "arm,coresight-cpu-debug", "arm,primecell";
478                 reg = <0x0 0x23310000 0x0 0x1000>;
479
480                 clocks = <&soc_smc50mhz>;
481                 clock-names = "apb_pclk";
482                 power-domains = <&scpi_devpd 0>;
483         };
484
485         etm5: etm@23340000 {
486                 compatible = "arm,coresight-etm4x", "arm,primecell";
487                 reg = <0 0x23340000 0 0x1000>;
488
489                 clocks = <&soc_smc50mhz>;
490                 clock-names = "apb_pclk";
491                 power-domains = <&scpi_devpd 0>;
492                 out-ports {
493                         port {
494                                 cluster1_etm3_out_port: endpoint {
495                                         remote-endpoint = <&cluster1_funnel_in_port3>;
496                                 };
497                         };
498                 };
499         };
500
501         gpu: gpu@2d000000 {
502                 compatible = "arm,juno-mali", "arm,mali-t624";
503                 reg = <0 0x2d000000 0 0x10000>;
504                 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
505                              <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
506                              <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
507                 interrupt-names = "job", "mmu", "gpu";
508                 clocks = <&scpi_dvfs 2>;
509                 power-domains = <&scpi_devpd 1>;
510                 dma-coherent;
511                 /* The SMMU is only really of interest to bare-metal hypervisors */
512                 /* iommus = <&smmu_gpu 0>; */
513                 status = "disabled";
514         };
515
516         sram: sram@2e000000 {
517                 compatible = "arm,juno-sram-ns", "mmio-sram";
518                 reg = <0x0 0x2e000000 0x0 0x8000>;
519
520                 #address-cells = <1>;
521                 #size-cells = <1>;
522                 ranges = <0 0x0 0x2e000000 0x8000>;
523
524                 cpu_scp_lpri: scp-sram@0 {
525                         compatible = "arm,juno-scp-shmem";
526                         reg = <0x0 0x200>;
527                 };
528
529                 cpu_scp_hpri: scp-sram@200 {
530                         compatible = "arm,juno-scp-shmem";
531                         reg = <0x200 0x200>;
532                 };
533         };
534
535         pcie_ctlr: pcie@40000000 {
536                 compatible = "arm,juno-r1-pcie", "plda,xpressrich3-axi", "pci-host-ecam-generic";
537                 device_type = "pci";
538                 reg = <0 0x40000000 0 0x10000000>;      /* ECAM config space */
539                 bus-range = <0 255>;
540                 linux,pci-domain = <0>;
541                 #address-cells = <3>;
542                 #size-cells = <2>;
543                 dma-coherent;
544                 ranges = <0x01000000 0x00 0x00000000 0x00 0x5f800000 0x0 0x00800000>,
545                          <0x02000000 0x00 0x50000000 0x00 0x50000000 0x0 0x08000000>,
546                          <0x42000000 0x40 0x00000000 0x40 0x00000000 0x1 0x00000000>;
547                 /* Standard AXI Translation entries as programmed by EDK2 */
548                 dma-ranges = <0x02000000 0x0 0x2c1c0000 0x0 0x2c1c0000 0x0 0x00040000>,
549                              <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x80000000>,
550                              <0x43000000 0x8 0x00000000 0x8 0x00000000 0x2 0x00000000>;
551                 #interrupt-cells = <1>;
552                 interrupt-map-mask = <0 0 0 7>;
553                 interrupt-map = <0 0 0 1 &gic 0 GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
554                                 <0 0 0 2 &gic 0 GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
555                                 <0 0 0 3 &gic 0 GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
556                                 <0 0 0 4 &gic 0 GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
557                 msi-parent = <&v2m_0>;
558                 status = "disabled";
559                 iommu-map-mask = <0x0>; /* RC has no means to output PCI RID */
560                 iommu-map = <0x0 &smmu_pcie 0x0 0x1>;
561         };
562
563         scpi {
564                 compatible = "arm,scpi";
565                 mboxes = <&mailbox 1>;
566                 shmem = <&cpu_scp_hpri>;
567
568                 clocks {
569                         compatible = "arm,scpi-clocks";
570
571                         scpi_dvfs: clocks-0 {
572                                 compatible = "arm,scpi-dvfs-clocks";
573                                 #clock-cells = <1>;
574                                 clock-indices = <0>, <1>, <2>;
575                                 clock-output-names = "atlclk", "aplclk","gpuclk";
576                         };
577                         scpi_clk: clocks-1 {
578                                 compatible = "arm,scpi-variable-clocks";
579                                 #clock-cells = <1>;
580                                 clock-indices = <3>;
581                                 clock-output-names = "pxlclk";
582                         };
583                 };
584
585                 scpi_devpd: power-controller {
586                         compatible = "arm,scpi-power-domains";
587                         num-domains = <2>;
588                         #power-domain-cells = <1>;
589                 };
590
591                 scpi_sensors0: sensors {
592                         compatible = "arm,scpi-sensors";
593                         #thermal-sensor-cells = <1>;
594                 };
595         };
596
597         thermal-zones {
598                 pmic {
599                         polling-delay = <1000>;
600                         polling-delay-passive = <100>;
601                         thermal-sensors = <&scpi_sensors0 0>;
602                 };
603
604                 soc {
605                         polling-delay = <1000>;
606                         polling-delay-passive = <100>;
607                         thermal-sensors = <&scpi_sensors0 3>;
608                 };
609
610                 big_cluster_thermal_zone: big-cluster {
611                         polling-delay = <1000>;
612                         polling-delay-passive = <100>;
613                         thermal-sensors = <&scpi_sensors0 21>;
614                         status = "disabled";
615                 };
616
617                 little_cluster_thermal_zone: little-cluster {
618                         polling-delay = <1000>;
619                         polling-delay-passive = <100>;
620                         thermal-sensors = <&scpi_sensors0 22>;
621                         status = "disabled";
622                 };
623
624                 gpu0_thermal_zone: gpu0 {
625                         polling-delay = <1000>;
626                         polling-delay-passive = <100>;
627                         thermal-sensors = <&scpi_sensors0 23>;
628                         status = "disabled";
629                 };
630
631                 gpu1_thermal_zone: gpu1 {
632                         polling-delay = <1000>;
633                         polling-delay-passive = <100>;
634                         thermal-sensors = <&scpi_sensors0 24>;
635                         status = "disabled";
636                 };
637         };
638
639         smmu_dma: iommu@7fb00000 {
640                 compatible = "arm,mmu-401", "arm,smmu-v1";
641                 reg = <0x0 0x7fb00000 0x0 0x10000>;
642                 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
643                              <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
644                 #iommu-cells = <1>;
645                 #global-interrupts = <1>;
646                 dma-coherent;
647         };
648
649         smmu_hdlcd1: iommu@7fb10000 {
650                 compatible = "arm,mmu-401", "arm,smmu-v1";
651                 reg = <0x0 0x7fb10000 0x0 0x10000>;
652                 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
653                              <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
654                 #iommu-cells = <1>;
655                 #global-interrupts = <1>;
656         };
657
658         smmu_hdlcd0: iommu@7fb20000 {
659                 compatible = "arm,mmu-401", "arm,smmu-v1";
660                 reg = <0x0 0x7fb20000 0x0 0x10000>;
661                 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
662                              <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
663                 #iommu-cells = <1>;
664                 #global-interrupts = <1>;
665         };
666
667         smmu_usb: iommu@7fb30000 {
668                 compatible = "arm,mmu-401", "arm,smmu-v1";
669                 reg = <0x0 0x7fb30000 0x0 0x10000>;
670                 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
671                              <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
672                 #iommu-cells = <1>;
673                 #global-interrupts = <1>;
674                 dma-coherent;
675         };
676
677         dma@7ff00000 {
678                 compatible = "arm,pl330", "arm,primecell";
679                 reg = <0x0 0x7ff00000 0 0x1000>;
680                 #dma-cells = <1>;
681                 #dma-channels = <8>;
682                 #dma-requests = <32>;
683                 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
684                              <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
685                              <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
686                              <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
687                              <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
688                              <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
689                              <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
690                              <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
691                              <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
692                 iommus = <&smmu_dma 0>,
693                          <&smmu_dma 1>,
694                          <&smmu_dma 2>,
695                          <&smmu_dma 3>,
696                          <&smmu_dma 4>,
697                          <&smmu_dma 5>,
698                          <&smmu_dma 6>,
699                          <&smmu_dma 7>,
700                          <&smmu_dma 8>;
701                 clocks = <&soc_faxiclk>;
702                 clock-names = "apb_pclk";
703         };
704
705         hdlcd@7ff50000 {
706                 compatible = "arm,hdlcd";
707                 reg = <0 0x7ff50000 0 0x1000>;
708                 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
709                 iommus = <&smmu_hdlcd1 0>;
710                 clocks = <&scpi_clk 3>;
711                 clock-names = "pxlclk";
712
713                 port {
714                         hdlcd1_output: endpoint {
715                                 remote-endpoint = <&tda998x_1_input>;
716                         };
717                 };
718         };
719
720         hdlcd@7ff60000 {
721                 compatible = "arm,hdlcd";
722                 reg = <0 0x7ff60000 0 0x1000>;
723                 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
724                 iommus = <&smmu_hdlcd0 0>;
725                 clocks = <&scpi_clk 3>;
726                 clock-names = "pxlclk";
727
728                 port {
729                         hdlcd0_output: endpoint {
730                                 remote-endpoint = <&tda998x_0_input>;
731                         };
732                 };
733         };
734
735         soc_uart0: serial@7ff80000 {
736                 compatible = "arm,pl011", "arm,primecell";
737                 reg = <0x0 0x7ff80000 0x0 0x1000>;
738                 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
739                 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
740                 clock-names = "uartclk", "apb_pclk";
741         };
742
743         i2c@7ffa0000 {
744                 compatible = "snps,designware-i2c";
745                 reg = <0x0 0x7ffa0000 0x0 0x1000>;
746                 #address-cells = <1>;
747                 #size-cells = <0>;
748                 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
749                 clock-frequency = <400000>;
750                 i2c-sda-hold-time-ns = <500>;
751                 clocks = <&soc_smc50mhz>;
752
753                 hdmi-transmitter@70 {
754                         compatible = "nxp,tda998x";
755                         reg = <0x70>;
756                         port {
757                                 tda998x_0_input: endpoint {
758                                         remote-endpoint = <&hdlcd0_output>;
759                                 };
760                         };
761                 };
762
763                 hdmi-transmitter@71 {
764                         compatible = "nxp,tda998x";
765                         reg = <0x71>;
766                         port {
767                                 tda998x_1_input: endpoint {
768                                         remote-endpoint = <&hdlcd1_output>;
769                                 };
770                         };
771                 };
772         };
773
774         usb@7ffb0000 {
775                 compatible = "generic-ohci";
776                 reg = <0x0 0x7ffb0000 0x0 0x10000>;
777                 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
778                 iommus = <&smmu_usb 0>;
779                 clocks = <&soc_usb48mhz>;
780         };
781
782         usb@7ffc0000 {
783                 compatible = "generic-ehci";
784                 reg = <0x0 0x7ffc0000 0x0 0x10000>;
785                 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
786                 iommus = <&smmu_usb 0>;
787                 clocks = <&soc_usb48mhz>;
788         };
789
790         memory-controller@7ffd0000 {
791                 compatible = "arm,pl354", "arm,primecell";
792                 reg = <0 0x7ffd0000 0 0x1000>;
793                 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
794                              <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
795                 clocks = <&soc_smc50mhz>;
796                 clock-names = "apb_pclk";
797         };
798
799         memory@80000000 {
800                 device_type = "memory";
801                 /* last 16MB of the first memory area is reserved for secure world use by firmware */
802                 reg = <0x00000000 0x80000000 0x0 0x7f000000>,
803                       <0x00000008 0x80000000 0x1 0x80000000>;
804         };
805
806         bus@8000000 {
807                 compatible = "simple-bus";
808                 #address-cells = <2>;
809                 #size-cells = <1>;
810                 ranges = <0 0 0 0x08000000 0x04000000>,
811                          <1 0 0 0x14000000 0x04000000>,
812                          <2 0 0 0x18000000 0x04000000>,
813                          <3 0 0 0x1c000000 0x04000000>,
814                          <4 0 0 0x0c000000 0x04000000>,
815                          <5 0 0 0x10000000 0x04000000>;
816
817                 #interrupt-cells = <1>;
818                 interrupt-map-mask = <0 0 15>;
819                 interrupt-map = <0 0  0 &gic 0 GIC_SPI  68 IRQ_TYPE_LEVEL_HIGH>,
820                                 <0 0  1 &gic 0 GIC_SPI  69 IRQ_TYPE_LEVEL_HIGH>,
821                                 <0 0  2 &gic 0 GIC_SPI  70 IRQ_TYPE_LEVEL_HIGH>,
822                                 <0 0  3 &gic 0 GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
823                                 <0 0  4 &gic 0 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
824                                 <0 0  5 &gic 0 GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
825                                 <0 0  6 &gic 0 GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
826                                 <0 0  7 &gic 0 GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
827                                 <0 0  8 &gic 0 GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
828                                 <0 0  9 &gic 0 GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
829                                 <0 0 10 &gic 0 GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
830                                 <0 0 11 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
831                                 <0 0 12 &gic 0 GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
832         };
833
834         site2: tlx-bus@60000000 {
835                 compatible = "simple-bus";
836                 #address-cells = <1>;
837                 #size-cells = <1>;
838                 ranges = <0 0 0x60000000 0x10000000>;
839                 #interrupt-cells = <1>;
840                 interrupt-map-mask = <0 0>;
841                 interrupt-map = <0 0 &gic 0 GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
842         };
843 };