Merge tag 'imx-dt64-tmu-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/shawngu...
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / freescale / imx8mq.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright 2017 NXP
4  * Copyright (C) 2017-2018 Pengutronix, Lucas Stach <kernel@pengutronix.de>
5  */
6
7 #include <dt-bindings/clock/imx8mq-clock.h>
8 #include <dt-bindings/power/imx8mq-power.h>
9 #include <dt-bindings/reset/imx8mq-reset.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include "dt-bindings/input/input.h"
12 #include <dt-bindings/interrupt-controller/arm-gic.h>
13 #include <dt-bindings/thermal/thermal.h>
14 #include "imx8mq-pinfunc.h"
15
16 / {
17         interrupt-parent = <&gpc>;
18
19         #address-cells = <2>;
20         #size-cells = <2>;
21
22         aliases {
23                 gpio0 = &gpio1;
24                 gpio1 = &gpio2;
25                 gpio2 = &gpio3;
26                 gpio3 = &gpio4;
27                 gpio4 = &gpio5;
28                 i2c0 = &i2c1;
29                 i2c1 = &i2c2;
30                 i2c2 = &i2c3;
31                 i2c3 = &i2c4;
32                 serial0 = &uart1;
33                 serial1 = &uart2;
34                 serial2 = &uart3;
35                 serial3 = &uart4;
36                 spi0 = &ecspi1;
37                 spi1 = &ecspi2;
38                 spi2 = &ecspi3;
39         };
40
41         ckil: clock-ckil {
42                 compatible = "fixed-clock";
43                 #clock-cells = <0>;
44                 clock-frequency = <32768>;
45                 clock-output-names = "ckil";
46         };
47
48         osc_25m: clock-osc-25m {
49                 compatible = "fixed-clock";
50                 #clock-cells = <0>;
51                 clock-frequency = <25000000>;
52                 clock-output-names = "osc_25m";
53         };
54
55         osc_27m: clock-osc-27m {
56                 compatible = "fixed-clock";
57                 #clock-cells = <0>;
58                 clock-frequency = <27000000>;
59                 clock-output-names = "osc_27m";
60         };
61
62         clk_ext1: clock-ext1 {
63                 compatible = "fixed-clock";
64                 #clock-cells = <0>;
65                 clock-frequency = <133000000>;
66                 clock-output-names = "clk_ext1";
67         };
68
69         clk_ext2: clock-ext2 {
70                 compatible = "fixed-clock";
71                 #clock-cells = <0>;
72                 clock-frequency = <133000000>;
73                 clock-output-names = "clk_ext2";
74         };
75
76         clk_ext3: clock-ext3 {
77                 compatible = "fixed-clock";
78                 #clock-cells = <0>;
79                 clock-frequency = <133000000>;
80                 clock-output-names = "clk_ext3";
81         };
82
83         clk_ext4: clock-ext4 {
84                 compatible = "fixed-clock";
85                 #clock-cells = <0>;
86                 clock-frequency= <133000000>;
87                 clock-output-names = "clk_ext4";
88         };
89
90         cpus {
91                 #address-cells = <1>;
92                 #size-cells = <0>;
93
94                 A53_0: cpu@0 {
95                         device_type = "cpu";
96                         compatible = "arm,cortex-a53";
97                         reg = <0x0>;
98                         clock-latency = <61036>; /* two CLK32 periods */
99                         clocks = <&clk IMX8MQ_CLK_ARM>;
100                         enable-method = "psci";
101                         next-level-cache = <&A53_L2>;
102                         operating-points-v2 = <&a53_opp_table>;
103                         #cooling-cells = <2>;
104                         nvmem-cells = <&cpu_speed_grade>;
105                         nvmem-cell-names = "speed_grade";
106                 };
107
108                 A53_1: cpu@1 {
109                         device_type = "cpu";
110                         compatible = "arm,cortex-a53";
111                         reg = <0x1>;
112                         clock-latency = <61036>; /* two CLK32 periods */
113                         clocks = <&clk IMX8MQ_CLK_ARM>;
114                         enable-method = "psci";
115                         next-level-cache = <&A53_L2>;
116                         operating-points-v2 = <&a53_opp_table>;
117                         #cooling-cells = <2>;
118                 };
119
120                 A53_2: cpu@2 {
121                         device_type = "cpu";
122                         compatible = "arm,cortex-a53";
123                         reg = <0x2>;
124                         clock-latency = <61036>; /* two CLK32 periods */
125                         clocks = <&clk IMX8MQ_CLK_ARM>;
126                         enable-method = "psci";
127                         next-level-cache = <&A53_L2>;
128                         operating-points-v2 = <&a53_opp_table>;
129                         #cooling-cells = <2>;
130                 };
131
132                 A53_3: cpu@3 {
133                         device_type = "cpu";
134                         compatible = "arm,cortex-a53";
135                         reg = <0x3>;
136                         clock-latency = <61036>; /* two CLK32 periods */
137                         clocks = <&clk IMX8MQ_CLK_ARM>;
138                         enable-method = "psci";
139                         next-level-cache = <&A53_L2>;
140                         operating-points-v2 = <&a53_opp_table>;
141                         #cooling-cells = <2>;
142                 };
143
144                 A53_L2: l2-cache0 {
145                         compatible = "cache";
146                 };
147         };
148
149         a53_opp_table: opp-table {
150                 compatible = "operating-points-v2";
151                 opp-shared;
152
153                 opp-800000000 {
154                         opp-hz = /bits/ 64 <800000000>;
155                         opp-microvolt = <900000>;
156                         /* Industrial only */
157                         opp-supported-hw = <0xf>, <0x4>;
158                         clock-latency-ns = <150000>;
159                         opp-suspend;
160                 };
161
162                 opp-1000000000 {
163                         opp-hz = /bits/ 64 <1000000000>;
164                         opp-microvolt = <900000>;
165                         /* Consumer only */
166                         opp-supported-hw = <0xe>, <0x3>;
167                         clock-latency-ns = <150000>;
168                         opp-suspend;
169                 };
170
171                 opp-1300000000 {
172                         opp-hz = /bits/ 64 <1300000000>;
173                         opp-microvolt = <1000000>;
174                         opp-supported-hw = <0xc>, <0x4>;
175                         clock-latency-ns = <150000>;
176                         opp-suspend;
177                 };
178
179                 opp-1500000000 {
180                         opp-hz = /bits/ 64 <1500000000>;
181                         opp-microvolt = <1000000>;
182                         opp-supported-hw = <0x8>, <0x3>;
183                         clock-latency-ns = <150000>;
184                         opp-suspend;
185                 };
186         };
187
188         pmu {
189                 compatible = "arm,cortex-a53-pmu";
190                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
191                 interrupt-parent = <&gic>;
192                 interrupt-affinity = <&A53_0>, <&A53_1>, <&A53_2>, <&A53_3>;
193         };
194
195         psci {
196                 compatible = "arm,psci-1.0";
197                 method = "smc";
198         };
199
200         thermal-zones {
201                 cpu-thermal {
202                         polling-delay-passive = <250>;
203                         polling-delay = <2000>;
204                         thermal-sensors = <&tmu 0>;
205
206                         trips {
207                                 cpu_alert: cpu-alert {
208                                         temperature = <80000>;
209                                         hysteresis = <2000>;
210                                         type = "passive";
211                                 };
212
213                                 cpu-crit {
214                                         temperature = <90000>;
215                                         hysteresis = <2000>;
216                                         type = "critical";
217                                 };
218                         };
219
220                         cooling-maps {
221                                 map0 {
222                                         trip = <&cpu_alert>;
223                                         cooling-device =
224                                                 <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
225                                                 <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
226                                                 <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
227                                                 <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
228                                 };
229                         };
230                 };
231
232                 gpu-thermal {
233                         polling-delay-passive = <250>;
234                         polling-delay = <2000>;
235                         thermal-sensors = <&tmu 1>;
236
237                         trips {
238                                 gpu_alert: gpu-alert {
239                                         temperature = <80000>;
240                                         hysteresis = <2000>;
241                                         type = "passive";
242                                 };
243
244                                 gpu-crit {
245                                         temperature = <90000>;
246                                         hysteresis = <2000>;
247                                         type = "critical";
248                                 };
249                         };
250
251                         cooling-maps {
252                                 map0 {
253                                         trip = <&gpu_alert>;
254                                         cooling-device =
255                                                 <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
256                                 };
257                         };
258                 };
259
260                 vpu-thermal {
261                         polling-delay-passive = <250>;
262                         polling-delay = <2000>;
263                         thermal-sensors = <&tmu 2>;
264
265                         trips {
266                                 vpu-crit {
267                                         temperature = <90000>;
268                                         hysteresis = <2000>;
269                                         type = "critical";
270                                 };
271                         };
272                 };
273         };
274
275         timer {
276                 compatible = "arm,armv8-timer";
277                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
278                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
279                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
280                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
281                 interrupt-parent = <&gic>;
282                 arm,no-tick-in-suspend;
283         };
284
285         soc@0 {
286                 compatible = "simple-bus";
287                 #address-cells = <1>;
288                 #size-cells = <1>;
289                 ranges = <0x0 0x0 0x0 0x3e000000>;
290                 dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
291
292                 bus@30000000 { /* AIPS1 */
293                         compatible = "fsl,imx8mq-aips-bus", "simple-bus";
294                         #address-cells = <1>;
295                         #size-cells = <1>;
296                         ranges = <0x30000000 0x30000000 0x400000>;
297
298                         gpio1: gpio@30200000 {
299                                 compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
300                                 reg = <0x30200000 0x10000>;
301                                 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
302                                              <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
303                                 clocks = <&clk IMX8MQ_CLK_GPIO1_ROOT>;
304                                 gpio-controller;
305                                 #gpio-cells = <2>;
306                                 interrupt-controller;
307                                 #interrupt-cells = <2>;
308                                 gpio-ranges = <&iomuxc 0 10 30>;
309                         };
310
311                         gpio2: gpio@30210000 {
312                                 compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
313                                 reg = <0x30210000 0x10000>;
314                                 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
315                                              <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
316                                 clocks = <&clk IMX8MQ_CLK_GPIO2_ROOT>;
317                                 gpio-controller;
318                                 #gpio-cells = <2>;
319                                 interrupt-controller;
320                                 #interrupt-cells = <2>;
321                                 gpio-ranges = <&iomuxc 0 40 21>;
322                         };
323
324                         gpio3: gpio@30220000 {
325                                 compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
326                                 reg = <0x30220000 0x10000>;
327                                 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
328                                              <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
329                                 clocks = <&clk IMX8MQ_CLK_GPIO3_ROOT>;
330                                 gpio-controller;
331                                 #gpio-cells = <2>;
332                                 interrupt-controller;
333                                 #interrupt-cells = <2>;
334                                 gpio-ranges = <&iomuxc 0 61 26>;
335                         };
336
337                         gpio4: gpio@30230000 {
338                                 compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
339                                 reg = <0x30230000 0x10000>;
340                                 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
341                                              <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
342                                 clocks = <&clk IMX8MQ_CLK_GPIO4_ROOT>;
343                                 gpio-controller;
344                                 #gpio-cells = <2>;
345                                 interrupt-controller;
346                                 #interrupt-cells = <2>;
347                                 gpio-ranges = <&iomuxc 0 87 32>;
348                         };
349
350                         gpio5: gpio@30240000 {
351                                 compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio";
352                                 reg = <0x30240000 0x10000>;
353                                 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
354                                              <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
355                                 clocks = <&clk IMX8MQ_CLK_GPIO5_ROOT>;
356                                 gpio-controller;
357                                 #gpio-cells = <2>;
358                                 interrupt-controller;
359                                 #interrupt-cells = <2>;
360                                 gpio-ranges = <&iomuxc 0 119 30>;
361                         };
362
363                         tmu: tmu@30260000 {
364                                 compatible = "fsl,imx8mq-tmu";
365                                 reg = <0x30260000 0x10000>;
366                                 interrupt = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
367                                 clocks = <&clk IMX8MQ_CLK_TMU_ROOT>;
368                                 little-endian;
369                                 fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
370                                 fsl,tmu-calibration = <0x00000000 0x00000023
371                                                        0x00000001 0x00000029
372                                                        0x00000002 0x0000002f
373                                                        0x00000003 0x00000035
374                                                        0x00000004 0x0000003d
375                                                        0x00000005 0x00000043
376                                                        0x00000006 0x0000004b
377                                                        0x00000007 0x00000051
378                                                        0x00000008 0x00000057
379                                                        0x00000009 0x0000005f
380                                                        0x0000000a 0x00000067
381                                                        0x0000000b 0x0000006f
382
383                                                        0x00010000 0x0000001b
384                                                        0x00010001 0x00000023
385                                                        0x00010002 0x0000002b
386                                                        0x00010003 0x00000033
387                                                        0x00010004 0x0000003b
388                                                        0x00010005 0x00000043
389                                                        0x00010006 0x0000004b
390                                                        0x00010007 0x00000055
391                                                        0x00010008 0x0000005d
392                                                        0x00010009 0x00000067
393                                                        0x0001000a 0x00000070
394
395                                                        0x00020000 0x00000017
396                                                        0x00020001 0x00000023
397                                                        0x00020002 0x0000002d
398                                                        0x00020003 0x00000037
399                                                        0x00020004 0x00000041
400                                                        0x00020005 0x0000004b
401                                                        0x00020006 0x00000057
402                                                        0x00020007 0x00000063
403                                                        0x00020008 0x0000006f
404
405                                                        0x00030000 0x00000015
406                                                        0x00030001 0x00000021
407                                                        0x00030002 0x0000002d
408                                                        0x00030003 0x00000039
409                                                        0x00030004 0x00000045
410                                                        0x00030005 0x00000053
411                                                        0x00030006 0x0000005f
412                                                        0x00030007 0x00000071>;
413                                 #thermal-sensor-cells =  <1>;
414                         };
415
416                         wdog1: watchdog@30280000 {
417                                 compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt";
418                                 reg = <0x30280000 0x10000>;
419                                 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
420                                 clocks = <&clk IMX8MQ_CLK_WDOG1_ROOT>;
421                                 status = "disabled";
422                         };
423
424                         wdog2: watchdog@30290000 {
425                                 compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt";
426                                 reg = <0x30290000 0x10000>;
427                                 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
428                                 clocks = <&clk IMX8MQ_CLK_WDOG2_ROOT>;
429                                 status = "disabled";
430                         };
431
432                         wdog3: watchdog@302a0000 {
433                                 compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt";
434                                 reg = <0x302a0000 0x10000>;
435                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
436                                 clocks = <&clk IMX8MQ_CLK_WDOG3_ROOT>;
437                                 status = "disabled";
438                         };
439
440                         sdma2: sdma@302c0000 {
441                                 compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma";
442                                 reg = <0x302c0000 0x10000>;
443                                 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
444                                 clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>,
445                                          <&clk IMX8MQ_CLK_SDMA2_ROOT>;
446                                 clock-names = "ipg", "ahb";
447                                 #dma-cells = <3>;
448                                 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
449                         };
450
451                         iomuxc: iomuxc@30330000 {
452                                 compatible = "fsl,imx8mq-iomuxc";
453                                 reg = <0x30330000 0x10000>;
454                         };
455
456                         iomuxc_gpr: syscon@30340000 {
457                                 compatible = "fsl,imx8mq-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr",
458                                              "syscon", "simple-mfd";
459                                 reg = <0x30340000 0x10000>;
460
461                                 mux: mux-controller {
462                                         compatible = "mmio-mux";
463                                         #mux-control-cells = <1>;
464                                         mux-reg-masks = <0x34 0x00000004>; /* MIPI_MUX_SEL */
465                                 };
466                         };
467
468                         ocotp: ocotp-ctrl@30350000 {
469                                 compatible = "fsl,imx8mq-ocotp", "syscon";
470                                 reg = <0x30350000 0x10000>;
471                                 clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>;
472                                 #address-cells = <1>;
473                                 #size-cells = <1>;
474
475                                 cpu_speed_grade: speed-grade@10 {
476                                         reg = <0x10 4>;
477                                 };
478                         };
479
480                         anatop: syscon@30360000 {
481                                 compatible = "fsl,imx8mq-anatop", "syscon";
482                                 reg = <0x30360000 0x10000>;
483                                 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
484                         };
485
486                         snvs: snvs@30370000 {
487                                 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
488                                 reg = <0x30370000 0x10000>;
489
490                                 snvs_rtc: snvs-rtc-lp{
491                                         compatible = "fsl,sec-v4.0-mon-rtc-lp";
492                                         regmap =<&snvs>;
493                                         offset = <0x34>;
494                                         interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
495                                                 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
496                                         clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>;
497                                         clock-names = "snvs-rtc";
498                                 };
499
500                                 snvs_pwrkey: snvs-powerkey {
501                                         compatible = "fsl,sec-v4.0-pwrkey";
502                                         regmap = <&snvs>;
503                                         interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
504                                         linux,keycode = <KEY_POWER>;
505                                         wakeup-source;
506                                         status = "disabled";
507                                 };
508                         };
509
510                         clk: clock-controller@30380000 {
511                                 compatible = "fsl,imx8mq-ccm";
512                                 reg = <0x30380000 0x10000>;
513                                 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
514                                              <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
515                                 #clock-cells = <1>;
516                                 clocks = <&ckil>, <&osc_25m>, <&osc_27m>,
517                                          <&clk_ext1>, <&clk_ext2>,
518                                          <&clk_ext3>, <&clk_ext4>;
519                                 clock-names = "ckil", "osc_25m", "osc_27m",
520                                               "clk_ext1", "clk_ext2",
521                                               "clk_ext3", "clk_ext4";
522                         };
523
524                         src: reset-controller@30390000 {
525                                 compatible = "fsl,imx8mq-src", "syscon";
526                                 reg = <0x30390000 0x10000>;
527                                 #reset-cells = <1>;
528                         };
529
530                         gpc: gpc@303a0000 {
531                                 compatible = "fsl,imx8mq-gpc";
532                                 reg = <0x303a0000 0x10000>;
533                                 interrupt-parent = <&gic>;
534                                 interrupt-controller;
535                                 #interrupt-cells = <3>;
536
537                                 pgc {
538                                         #address-cells = <1>;
539                                         #size-cells = <0>;
540
541                                         pgc_mipi: power-domain@0 {
542                                                 #power-domain-cells = <0>;
543                                                 reg = <IMX8M_POWER_DOMAIN_MIPI>;
544                                         };
545
546                                         /*
547                                          * As per comment in ATF source code:
548                                          *
549                                          * PCIE1 and PCIE2 share the
550                                          * same reset signal, if we
551                                          * power down PCIE2, PCIE1
552                                          * will be held in reset too.
553                                          *
554                                          * So instead of creating two
555                                          * separate power domains for
556                                          * PCIE1 and PCIE2 we create a
557                                          * link between both and use
558                                          * it as a shared PCIE power
559                                          * domain.
560                                          */
561                                         pgc_pcie: power-domain@1 {
562                                                 #power-domain-cells = <0>;
563                                                 reg = <IMX8M_POWER_DOMAIN_PCIE1>;
564                                                 power-domains = <&pgc_pcie2>;
565                                         };
566
567                                         pgc_otg1: power-domain@2 {
568                                                 #power-domain-cells = <0>;
569                                                 reg = <IMX8M_POWER_DOMAIN_USB_OTG1>;
570                                         };
571
572                                         pgc_otg2: power-domain@3 {
573                                                 #power-domain-cells = <0>;
574                                                 reg = <IMX8M_POWER_DOMAIN_USB_OTG2>;
575                                         };
576
577                                         pgc_ddr1: power-domain@4 {
578                                                 #power-domain-cells = <0>;
579                                                 reg = <IMX8M_POWER_DOMAIN_DDR1>;
580                                         };
581
582                                         pgc_gpu: power-domain@5 {
583                                                 #power-domain-cells = <0>;
584                                                 reg = <IMX8M_POWER_DOMAIN_GPU>;
585                                                 clocks = <&clk IMX8MQ_CLK_GPU_ROOT>,
586                                                          <&clk IMX8MQ_CLK_GPU_SHADER_DIV>,
587                                                          <&clk IMX8MQ_CLK_GPU_AXI>,
588                                                          <&clk IMX8MQ_CLK_GPU_AHB>;
589                                         };
590
591                                         pgc_vpu: power-domain@6 {
592                                                 #power-domain-cells = <0>;
593                                                 reg = <IMX8M_POWER_DOMAIN_VPU>;
594                                         };
595
596                                         pgc_disp: power-domain@7 {
597                                                 #power-domain-cells = <0>;
598                                                 reg = <IMX8M_POWER_DOMAIN_DISP>;
599                                         };
600
601                                         pgc_mipi_csi1: power-domain@8 {
602                                                 #power-domain-cells = <0>;
603                                                 reg = <IMX8M_POWER_DOMAIN_MIPI_CSI1>;
604                                         };
605
606                                         pgc_mipi_csi2: power-domain@9 {
607                                                 #power-domain-cells = <0>;
608                                                 reg = <IMX8M_POWER_DOMAIN_MIPI_CSI2>;
609                                         };
610
611                                         pgc_pcie2: power-domain@a {
612                                                 #power-domain-cells = <0>;
613                                                 reg = <IMX8M_POWER_DOMAIN_PCIE2>;
614                                         };
615                                 };
616                         };
617                 };
618
619                 bus@30400000 { /* AIPS2 */
620                         compatible = "fsl,imx8mq-aips-bus", "simple-bus";
621                         #address-cells = <1>;
622                         #size-cells = <1>;
623                         ranges = <0x30400000 0x30400000 0x400000>;
624
625                         pwm1: pwm@30660000 {
626                                 compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
627                                 reg = <0x30660000 0x10000>;
628                                 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
629                                 clocks = <&clk IMX8MQ_CLK_PWM1_ROOT>,
630                                          <&clk IMX8MQ_CLK_PWM1_ROOT>;
631                                 clock-names = "ipg", "per";
632                                 #pwm-cells = <2>;
633                                 status = "disabled";
634                         };
635
636                         pwm2: pwm@30670000 {
637                                 compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
638                                 reg = <0x30670000 0x10000>;
639                                 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
640                                 clocks = <&clk IMX8MQ_CLK_PWM2_ROOT>,
641                                          <&clk IMX8MQ_CLK_PWM2_ROOT>;
642                                 clock-names = "ipg", "per";
643                                 #pwm-cells = <2>;
644                                 status = "disabled";
645                         };
646
647                         pwm3: pwm@30680000 {
648                                 compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
649                                 reg = <0x30680000 0x10000>;
650                                 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
651                                 clocks = <&clk IMX8MQ_CLK_PWM3_ROOT>,
652                                          <&clk IMX8MQ_CLK_PWM3_ROOT>;
653                                 clock-names = "ipg", "per";
654                                 #pwm-cells = <2>;
655                                 status = "disabled";
656                         };
657
658                         pwm4: pwm@30690000 {
659                                 compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm";
660                                 reg = <0x30690000 0x10000>;
661                                 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
662                                 clocks = <&clk IMX8MQ_CLK_PWM4_ROOT>,
663                                          <&clk IMX8MQ_CLK_PWM4_ROOT>;
664                                 clock-names = "ipg", "per";
665                                 #pwm-cells = <2>;
666                                 status = "disabled";
667                         };
668
669                         system_counter: timer@306a0000 {
670                                 compatible = "nxp,sysctr-timer";
671                                 reg = <0x306a0000 0x20000>;
672                                 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
673                                 clocks = <&osc_25m>;
674                                 clock-names = "per";
675                         };
676                 };
677
678                 bus@30800000 { /* AIPS3 */
679                         compatible = "fsl,imx8mq-aips-bus", "simple-bus";
680                         #address-cells = <1>;
681                         #size-cells = <1>;
682                         ranges = <0x30800000 0x30800000 0x400000>,
683                                  <0x08000000 0x08000000 0x10000000>;
684
685                         ecspi1: spi@30820000 {
686                                 #address-cells = <1>;
687                                 #size-cells = <0>;
688                                 compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi";
689                                 reg = <0x30820000 0x10000>;
690                                 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
691                                 clocks = <&clk IMX8MQ_CLK_ECSPI1_ROOT>,
692                                          <&clk IMX8MQ_CLK_ECSPI1_ROOT>;
693                                 clock-names = "ipg", "per";
694                                 status = "disabled";
695                         };
696
697                         ecspi2: spi@30830000 {
698                                 #address-cells = <1>;
699                                 #size-cells = <0>;
700                                 compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi";
701                                 reg = <0x30830000 0x10000>;
702                                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
703                                 clocks = <&clk IMX8MQ_CLK_ECSPI2_ROOT>,
704                                          <&clk IMX8MQ_CLK_ECSPI2_ROOT>;
705                                 clock-names = "ipg", "per";
706                                 status = "disabled";
707                         };
708
709                         ecspi3: spi@30840000 {
710                                 #address-cells = <1>;
711                                 #size-cells = <0>;
712                                 compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi";
713                                 reg = <0x30840000 0x10000>;
714                                 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
715                                 clocks = <&clk IMX8MQ_CLK_ECSPI3_ROOT>,
716                                          <&clk IMX8MQ_CLK_ECSPI3_ROOT>;
717                                 clock-names = "ipg", "per";
718                                 status = "disabled";
719                         };
720
721                         uart1: serial@30860000 {
722                                 compatible = "fsl,imx8mq-uart",
723                                              "fsl,imx6q-uart";
724                                 reg = <0x30860000 0x10000>;
725                                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
726                                 clocks = <&clk IMX8MQ_CLK_UART1_ROOT>,
727                                          <&clk IMX8MQ_CLK_UART1_ROOT>;
728                                 clock-names = "ipg", "per";
729                                 status = "disabled";
730                         };
731
732                         uart3: serial@30880000 {
733                                 compatible = "fsl,imx8mq-uart",
734                                              "fsl,imx6q-uart";
735                                 reg = <0x30880000 0x10000>;
736                                 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
737                                 clocks = <&clk IMX8MQ_CLK_UART3_ROOT>,
738                                          <&clk IMX8MQ_CLK_UART3_ROOT>;
739                                 clock-names = "ipg", "per";
740                                 status = "disabled";
741                         };
742
743                         uart2: serial@30890000 {
744                                 compatible = "fsl,imx8mq-uart",
745                                              "fsl,imx6q-uart";
746                                 reg = <0x30890000 0x10000>;
747                                 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
748                                 clocks = <&clk IMX8MQ_CLK_UART2_ROOT>,
749                                          <&clk IMX8MQ_CLK_UART2_ROOT>;
750                                 clock-names = "ipg", "per";
751                                 status = "disabled";
752                         };
753
754                         sai2: sai@308b0000 {
755                                 #sound-dai-cells = <0>;
756                                 compatible = "fsl,imx8mq-sai";
757                                 reg = <0x308b0000 0x10000>;
758                                 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
759                                 clocks = <&clk IMX8MQ_CLK_SAI2_IPG>,
760                                          <&clk IMX8MQ_CLK_SAI2_ROOT>,
761                                          <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>;
762                                 clock-names = "bus", "mclk1", "mclk2", "mclk3";
763                                 dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>;
764                                 dma-names = "rx", "tx";
765                                 status = "disabled";
766                         };
767
768                         crypto: crypto@30900000 {
769                                 compatible = "fsl,sec-v4.0";
770                                 #address-cells = <1>;
771                                 #size-cells = <1>;
772                                 reg = <0x30900000 0x40000>;
773                                 ranges = <0 0x30900000 0x40000>;
774                                 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
775                                 clocks = <&clk IMX8MQ_CLK_AHB>,
776                                          <&clk IMX8MQ_CLK_IPG_ROOT>;
777                                 clock-names = "aclk", "ipg";
778
779                                 sec_jr0: jr@1000 {
780                                         compatible = "fsl,sec-v4.0-job-ring";
781                                         reg = <0x1000 0x1000>;
782                                         interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
783                                 };
784
785                                 sec_jr1: jr@2000 {
786                                         compatible = "fsl,sec-v4.0-job-ring";
787                                         reg = <0x2000 0x1000>;
788                                         interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
789                                 };
790
791                                 sec_jr2: jr@3000 {
792                                         compatible = "fsl,sec-v4.0-job-ring";
793                                         reg = <0x3000 0x1000>;
794                                         interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
795                                 };
796                         };
797
798                         dphy: dphy@30a00300 {
799                                 compatible = "fsl,imx8mq-mipi-dphy";
800                                 reg = <0x30a00300 0x100>;
801                                 clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
802                                 clock-names = "phy_ref";
803                                 assigned-clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
804                                 assigned-clock-parents = <&clk IMX8MQ_VIDEO_PLL1_OUT>;
805                                 assigned-clock-rates = <24000000>;
806                                 #phy-cells = <0>;
807                                 power-domains = <&pgc_mipi>;
808                                 status = "disabled";
809                         };
810
811                         i2c1: i2c@30a20000 {
812                                 compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
813                                 reg = <0x30a20000 0x10000>;
814                                 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
815                                 clocks = <&clk IMX8MQ_CLK_I2C1_ROOT>;
816                                 #address-cells = <1>;
817                                 #size-cells = <0>;
818                                 status = "disabled";
819                         };
820
821                         i2c2: i2c@30a30000 {
822                                 compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
823                                 reg = <0x30a30000 0x10000>;
824                                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
825                                 clocks = <&clk IMX8MQ_CLK_I2C2_ROOT>;
826                                 #address-cells = <1>;
827                                 #size-cells = <0>;
828                                 status = "disabled";
829                         };
830
831                         i2c3: i2c@30a40000 {
832                                 compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
833                                 reg = <0x30a40000 0x10000>;
834                                 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
835                                 clocks = <&clk IMX8MQ_CLK_I2C3_ROOT>;
836                                 #address-cells = <1>;
837                                 #size-cells = <0>;
838                                 status = "disabled";
839                         };
840
841                         i2c4: i2c@30a50000 {
842                                 compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c";
843                                 reg = <0x30a50000 0x10000>;
844                                 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
845                                 clocks = <&clk IMX8MQ_CLK_I2C4_ROOT>;
846                                 #address-cells = <1>;
847                                 #size-cells = <0>;
848                                 status = "disabled";
849                         };
850
851                         uart4: serial@30a60000 {
852                                 compatible = "fsl,imx8mq-uart",
853                                              "fsl,imx6q-uart";
854                                 reg = <0x30a60000 0x10000>;
855                                 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
856                                 clocks = <&clk IMX8MQ_CLK_UART4_ROOT>,
857                                          <&clk IMX8MQ_CLK_UART4_ROOT>;
858                                 clock-names = "ipg", "per";
859                                 status = "disabled";
860                         };
861
862                         usdhc1: mmc@30b40000 {
863                                 compatible = "fsl,imx8mq-usdhc",
864                                              "fsl,imx7d-usdhc";
865                                 reg = <0x30b40000 0x10000>;
866                                 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
867                                 clocks = <&clk IMX8MQ_CLK_IPG_ROOT>,
868                                          <&clk IMX8MQ_CLK_NAND_USDHC_BUS>,
869                                          <&clk IMX8MQ_CLK_USDHC1_ROOT>;
870                                 clock-names = "ipg", "ahb", "per";
871                                 fsl,tuning-start-tap = <20>;
872                                 fsl,tuning-step = <2>;
873                                 bus-width = <4>;
874                                 status = "disabled";
875                         };
876
877                         usdhc2: mmc@30b50000 {
878                                 compatible = "fsl,imx8mq-usdhc",
879                                              "fsl,imx7d-usdhc";
880                                 reg = <0x30b50000 0x10000>;
881                                 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
882                                 clocks = <&clk IMX8MQ_CLK_IPG_ROOT>,
883                                          <&clk IMX8MQ_CLK_NAND_USDHC_BUS>,
884                                          <&clk IMX8MQ_CLK_USDHC2_ROOT>;
885                                 clock-names = "ipg", "ahb", "per";
886                                 fsl,tuning-start-tap = <20>;
887                                 fsl,tuning-step = <2>;
888                                 bus-width = <4>;
889                                 status = "disabled";
890                         };
891
892                         qspi0: spi@30bb0000 {
893                                 #address-cells = <1>;
894                                 #size-cells = <0>;
895                                 compatible = "fsl,imx8mq-qspi", "fsl,imx7d-qspi";
896                                 reg = <0x30bb0000 0x10000>,
897                                       <0x08000000 0x10000000>;
898                                 reg-names = "QuadSPI", "QuadSPI-memory";
899                                 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
900                                 clocks = <&clk IMX8MQ_CLK_QSPI_ROOT>,
901                                          <&clk IMX8MQ_CLK_QSPI_ROOT>;
902                                 clock-names = "qspi_en", "qspi";
903                                 status = "disabled";
904                         };
905
906                         sdma1: sdma@30bd0000 {
907                                 compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma";
908                                 reg = <0x30bd0000 0x10000>;
909                                 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
910                                 clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>,
911                                          <&clk IMX8MQ_CLK_AHB>;
912                                 clock-names = "ipg", "ahb";
913                                 #dma-cells = <3>;
914                                 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
915                         };
916
917                         fec1: ethernet@30be0000 {
918                                 compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec";
919                                 reg = <0x30be0000 0x10000>;
920                                 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
921                                              <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
922                                              <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
923                                 clocks = <&clk IMX8MQ_CLK_ENET1_ROOT>,
924                                          <&clk IMX8MQ_CLK_ENET1_ROOT>,
925                                          <&clk IMX8MQ_CLK_ENET_TIMER>,
926                                          <&clk IMX8MQ_CLK_ENET_REF>,
927                                          <&clk IMX8MQ_CLK_ENET_PHY_REF>;
928                                 clock-names = "ipg", "ahb", "ptp",
929                                               "enet_clk_ref", "enet_out";
930                                 fsl,num-tx-queues = <3>;
931                                 fsl,num-rx-queues = <3>;
932                                 status = "disabled";
933                         };
934                 };
935
936                 bus@32c00000 { /* AIPS4 */
937                         compatible = "fsl,imx8mq-aips-bus", "simple-bus";
938                         #address-cells = <1>;
939                         #size-cells = <1>;
940                         ranges = <0x32c00000 0x32c00000 0x400000>;
941
942                         irqsteer: interrupt-controller@32e2d000 {
943                                 compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer";
944                                 reg = <0x32e2d000 0x1000>;
945                                 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
946                                 clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>;
947                                 clock-names = "ipg";
948                                 fsl,channel = <0>;
949                                 fsl,num-irqs = <64>;
950                                 interrupt-controller;
951                                 #interrupt-cells = <1>;
952                         };
953                 };
954
955                 gpu: gpu@38000000 {
956                         compatible = "vivante,gc";
957                         reg = <0x38000000 0x40000>;
958                         interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
959                         clocks = <&clk IMX8MQ_CLK_GPU_ROOT>,
960                                  <&clk IMX8MQ_CLK_GPU_SHADER_DIV>,
961                                  <&clk IMX8MQ_CLK_GPU_AXI>,
962                                  <&clk IMX8MQ_CLK_GPU_AHB>;
963                         clock-names = "core", "shader", "bus", "reg";
964                         #cooling-cells = <2>;
965                         assigned-clocks = <&clk IMX8MQ_CLK_GPU_CORE_SRC>,
966                                           <&clk IMX8MQ_CLK_GPU_SHADER_SRC>,
967                                           <&clk IMX8MQ_CLK_GPU_AXI>,
968                                           <&clk IMX8MQ_CLK_GPU_AHB>,
969                                           <&clk IMX8MQ_GPU_PLL_BYPASS>;
970                         assigned-clock-parents = <&clk IMX8MQ_GPU_PLL_OUT>,
971                                                  <&clk IMX8MQ_GPU_PLL_OUT>,
972                                                  <&clk IMX8MQ_GPU_PLL_OUT>,
973                                                  <&clk IMX8MQ_GPU_PLL_OUT>,
974                                                  <&clk IMX8MQ_GPU_PLL>;
975                         assigned-clock-rates = <800000000>, <800000000>,
976                                                <800000000>, <800000000>, <0>;
977                         power-domains = <&pgc_gpu>;
978                 };
979
980                 usb_dwc3_0: usb@38100000 {
981                         compatible = "fsl,imx8mq-dwc3", "snps,dwc3";
982                         reg = <0x38100000 0x10000>;
983                         clocks = <&clk IMX8MQ_CLK_USB1_CTRL_ROOT>,
984                                  <&clk IMX8MQ_CLK_USB_CORE_REF>,
985                                  <&clk IMX8MQ_CLK_32K>;
986                         clock-names = "bus_early", "ref", "suspend";
987                         assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>,
988                                           <&clk IMX8MQ_CLK_USB_CORE_REF>;
989                         assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>,
990                                                  <&clk IMX8MQ_SYS1_PLL_100M>;
991                         assigned-clock-rates = <500000000>, <100000000>;
992                         interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
993                         phys = <&usb3_phy0>, <&usb3_phy0>;
994                         phy-names = "usb2-phy", "usb3-phy";
995                         power-domains = <&pgc_otg1>;
996                         usb3-resume-missing-cas;
997                         status = "disabled";
998                 };
999
1000                 usb3_phy0: usb-phy@381f0040 {
1001                         compatible = "fsl,imx8mq-usb-phy";
1002                         reg = <0x381f0040 0x40>;
1003                         clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>;
1004                         clock-names = "phy";
1005                         assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>;
1006                         assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>;
1007                         assigned-clock-rates = <100000000>;
1008                         #phy-cells = <0>;
1009                         status = "disabled";
1010                 };
1011
1012                 usb_dwc3_1: usb@38200000 {
1013                         compatible = "fsl,imx8mq-dwc3", "snps,dwc3";
1014                         reg = <0x38200000 0x10000>;
1015                         clocks = <&clk IMX8MQ_CLK_USB2_CTRL_ROOT>,
1016                                  <&clk IMX8MQ_CLK_USB_CORE_REF>,
1017                                  <&clk IMX8MQ_CLK_32K>;
1018                         clock-names = "bus_early", "ref", "suspend";
1019                         assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>,
1020                                           <&clk IMX8MQ_CLK_USB_CORE_REF>;
1021                         assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>,
1022                                                  <&clk IMX8MQ_SYS1_PLL_100M>;
1023                         assigned-clock-rates = <500000000>, <100000000>;
1024                         interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
1025                         phys = <&usb3_phy1>, <&usb3_phy1>;
1026                         phy-names = "usb2-phy", "usb3-phy";
1027                         power-domains = <&pgc_otg2>;
1028                         usb3-resume-missing-cas;
1029                         status = "disabled";
1030                 };
1031
1032                 usb3_phy1: usb-phy@382f0040 {
1033                         compatible = "fsl,imx8mq-usb-phy";
1034                         reg = <0x382f0040 0x40>;
1035                         clocks = <&clk IMX8MQ_CLK_USB2_PHY_ROOT>;
1036                         clock-names = "phy";
1037                         assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>;
1038                         assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>;
1039                         assigned-clock-rates = <100000000>;
1040                         #phy-cells = <0>;
1041                         status = "disabled";
1042                 };
1043
1044                 pcie0: pcie@33800000 {
1045                         compatible = "fsl,imx8mq-pcie";
1046                         reg = <0x33800000 0x400000>,
1047                               <0x1ff00000 0x80000>;
1048                         reg-names = "dbi", "config";
1049                         #address-cells = <3>;
1050                         #size-cells = <2>;
1051                         device_type = "pci";
1052                         bus-range = <0x00 0xff>;
1053                         ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000 /* downstream I/O 64KB */
1054                                   0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */
1055                         num-lanes = <1>;
1056                         num-viewport = <4>;
1057                         interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1058                         interrupt-names = "msi";
1059                         #interrupt-cells = <1>;
1060                         interrupt-map-mask = <0 0 0 0x7>;
1061                         interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1062                                         <0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1063                                         <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1064                                         <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
1065                         fsl,max-link-speed = <2>;
1066                         power-domains = <&pgc_pcie>;
1067                         resets = <&src IMX8MQ_RESET_PCIEPHY>,
1068                                  <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
1069                                  <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
1070                         reset-names = "pciephy", "apps", "turnoff";
1071                         status = "disabled";
1072                 };
1073
1074                 pcie1: pcie@33c00000 {
1075                         compatible = "fsl,imx8mq-pcie";
1076                         reg = <0x33c00000 0x400000>,
1077                               <0x27f00000 0x80000>;
1078                         reg-names = "dbi", "config";
1079                         #address-cells = <3>;
1080                         #size-cells = <2>;
1081                         device_type = "pci";
1082                         ranges =  <0x81000000 0 0x00000000 0x27f80000 0 0x00010000 /* downstream I/O 64KB */
1083                                    0x82000000 0 0x20000000 0x20000000 0 0x07f00000>; /* non-prefetchable memory */
1084                         num-lanes = <1>;
1085                         num-viewport = <4>;
1086                         interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1087                         interrupt-names = "msi";
1088                         #interrupt-cells = <1>;
1089                         interrupt-map-mask = <0 0 0 0x7>;
1090                         interrupt-map = <0 0 0 1 &gic GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
1091                                         <0 0 0 2 &gic GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
1092                                         <0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
1093                                         <0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
1094                         fsl,max-link-speed = <2>;
1095                         power-domains = <&pgc_pcie>;
1096                         resets = <&src IMX8MQ_RESET_PCIEPHY2>,
1097                                  <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
1098                                  <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
1099                         reset-names = "pciephy", "apps", "turnoff";
1100                         status = "disabled";
1101                 };
1102
1103                 gic: interrupt-controller@38800000 {
1104                         compatible = "arm,gic-v3";
1105                         reg = <0x38800000 0x10000>,     /* GIC Dist */
1106                               <0x38880000 0xc0000>,     /* GICR */
1107                               <0x31000000 0x2000>,      /* GICC */
1108                               <0x31010000 0x2000>,      /* GICV */
1109                               <0x31020000 0x2000>;      /* GICH */
1110                         #interrupt-cells = <3>;
1111                         interrupt-controller;
1112                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1113                         interrupt-parent = <&gic>;
1114                 };
1115
1116                 ddr-pmu@3d800000 {
1117                         compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu";
1118                         reg = <0x3d800000 0x400000>;
1119                         interrupt-parent = <&gic>;
1120                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1121                 };
1122         };
1123 };