1 // SPDX-License-Identifier: GPL-2.0+
6 #include <dt-bindings/interrupt-controller/arm-gic.h>
7 #include "fsl-imx8-ca53.dtsi"
8 #include <dt-bindings/clock/imx8qm-clock.h>
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/soc/imx_rsrc.h>
11 #include <dt-bindings/soc/imx8_pd.h>
12 #include <dt-bindings/pinctrl/pads-imx8qm.h>
13 #include <dt-bindings/gpio/gpio.h>
16 compatible = "fsl,imx8qm";
17 interrupt-parent = <&gic>;
48 device_type = "memory";
49 reg = <0x00000000 0x80000000 0 0x40000000>;
50 /* DRAM space - 1, size : 1 GB DRAM */
53 gic: interrupt-controller@51a00000 {
54 compatible = "arm,gic-v3";
55 reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
56 <0x0 0x51b00000 0 0xC0000>, /* GICR */
57 <0x0 0x52000000 0 0x2000>, /* GICC */
58 <0x0 0x52010000 0 0x1000>, /* GICH */
59 <0x0 0x52020000 0 0x20000>; /* GICV */
60 #interrupt-cells = <3>;
62 interrupts = <GIC_PPI 9
63 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
64 interrupt-parent = <&gic>;
68 compatible = "fsl,imx8-mu";
69 reg = <0x0 0x5d1c0000 0x0 0x10000>;
70 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
71 interrupt-parent = <&gic>;
72 fsl,scu_ap_mu_id = <0>;
76 compatible = "fsl,imx8qm-clk";
81 compatible = "fsl,imx8qm-iomuxc";
86 compatible = "simple-bus";
91 compatible = "nxp,imx8-pd";
93 #power-domain-cells = <0>;
97 pd_lsio_gpio0: PD_LSIO_GPIO_0 {
99 #power-domain-cells = <0>;
100 power-domains = <&pd_lsio>;
102 pd_lsio_gpio1: PD_LSIO_GPIO_1 {
104 #power-domain-cells = <0>;
105 power-domains = <&pd_lsio>;
107 pd_lsio_gpio2: PD_LSIO_GPIO_2 {
109 #power-domain-cells = <0>;
110 power-domains = <&pd_lsio>;
112 pd_lsio_gpio3: PD_LSIO_GPIO_3 {
114 #power-domain-cells = <0>;
115 power-domains = <&pd_lsio>;
117 pd_lsio_gpio4: PD_LSIO_GPIO_4 {
119 #power-domain-cells = <0>;
120 power-domains = <&pd_lsio>;
122 pd_lsio_gpio5: PD_LSIO_GPIO_5{
124 #power-domain-cells = <0>;
125 power-domains = <&pd_lsio>;
127 pd_lsio_gpio6:PD_LSIO_GPIO_6 {
129 #power-domain-cells = <0>;
130 power-domains = <&pd_lsio>;
132 pd_lsio_gpio7: PD_LSIO_GPIO_7 {
134 #power-domain-cells = <0>;
135 power-domains = <&pd_lsio>;
140 compatible = "nxp,imx8-pd";
142 #power-domain-cells = <0>;
143 #address-cells = <1>;
146 pd_conn_sdch0: PD_CONN_SDHC_0 {
148 #power-domain-cells = <0>;
149 power-domains = <&pd_conn>;
151 pd_conn_sdch1: PD_CONN_SDHC_1 {
153 #power-domain-cells = <0>;
154 power-domains = <&pd_conn>;
156 pd_conn_sdch2: PD_CONN_SDHC_2 {
158 #power-domain-cells = <0>;
159 power-domains = <&pd_conn>;
161 pd_conn_enet0: PD_CONN_ENET_0 {
163 #power-domain-cells = <0>;
164 power-domains = <&pd_conn>;
167 pd_conn_enet1: PD_CONN_ENET_1 {
169 #power-domain-cells = <0>;
170 power-domains = <&pd_conn>;
171 fsl,wakeup_irq = <262>;
176 compatible = "nxp,imx8-pd";
178 #power-domain-cells = <0>;
179 #address-cells = <1>;
182 pd_dma_lpi2c0: PD_DMA_I2C_0 {
184 #power-domain-cells = <0>;
185 power-domains = <&pd_dma>;
187 pd_dma_lpi2c1: PD_DMA_I2C_1 {
189 #power-domain-cells = <0>;
190 power-domains = <&pd_dma>;
192 pd_dma_lpi2c2:PD_DMA_I2C_2 {
194 #power-domain-cells = <0>;
195 power-domains = <&pd_dma>;
197 pd_dma_lpi2c3: PD_DMA_I2C_3 {
199 #power-domain-cells = <0>;
200 power-domains = <&pd_dma>;
202 pd_dma_lpi2c4: PD_DMA_I2C_4 {
204 #power-domain-cells = <0>;
205 power-domains = <&pd_dma>;
207 pd_dma_lpuart0: PD_DMA_UART0 {
209 #power-domain-cells = <0>;
210 power-domains = <&pd_dma>;
213 pd_dma_lpuart1: PD_DMA_UART1 {
215 #power-domain-cells = <0>;
216 power-domains = <&pd_dma>;
219 pd_dma_lpuart2: PD_DMA_UART2 {
221 #power-domain-cells = <0>;
222 power-domains = <&pd_dma>;
225 pd_dma_lpuart3: PD_DMA_UART3 {
227 #power-domain-cells = <0>;
228 power-domains = <&pd_dma>;
231 pd_dma_lpuart4: PD_DMA_UART4 {
233 #power-domain-cells = <0>;
234 power-domains = <&pd_dma>;
241 compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
242 reg = <0x0 0x5a800000 0x0 0x4000>;
243 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
244 interrupt-parent = <&gic>;
245 clocks = <&clk IMX8QM_I2C0_CLK>,
246 <&clk IMX8QM_I2C0_IPG_CLK>;
247 clock-names = "per", "ipg";
248 assigned-clocks = <&clk IMX8QM_I2C0_CLK>;
249 assigned-clock-rates = <24000000>;
250 power-domains = <&pd_dma_lpi2c0>;
255 compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
256 reg = <0x0 0x5a810000 0x0 0x4000>;
257 interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
258 interrupt-parent = <&gic>;
259 clocks = <&clk IMX8QM_I2C1_CLK>,
260 <&clk IMX8QM_I2C1_IPG_CLK>;
261 clock-names = "per", "ipg";
262 assigned-clocks = <&clk IMX8QM_I2C1_CLK>;
263 assigned-clock-rates = <24000000>;
264 power-domains = <&pd_dma_lpi2c1>;
269 compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
270 reg = <0x0 0x5a820000 0x0 0x4000>;
271 interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
272 interrupt-parent = <&gic>;
273 clocks = <&clk IMX8QM_I2C2_CLK>,
274 <&clk IMX8QM_I2C2_IPG_CLK>;
275 clock-names = "per", "ipg";
276 assigned-clocks = <&clk IMX8QM_I2C2_CLK>;
277 assigned-clock-rates = <24000000>;
278 power-domains = <&pd_dma_lpi2c2>;
283 compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
284 reg = <0x0 0x5a830000 0x0 0x4000>;
285 interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
286 interrupt-parent = <&gic>;
287 clocks = <&clk IMX8QM_I2C3_CLK>,
288 <&clk IMX8QM_I2C3_IPG_CLK>;
289 clock-names = "per", "ipg";
290 assigned-clocks = <&clk IMX8QM_I2C3_CLK>;
291 assigned-clock-rates = <24000000>;
292 power-domains = <&pd_dma_lpi2c3>;
297 compatible = "fsl,imx8qm-lpi2c", "fsl,imx7ulp-lpi2c";
298 reg = <0x0 0x5a840000 0x0 0x4000>;
299 interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
300 interrupt-parent = <&gic>;
301 clocks = <&clk IMX8QM_I2C4_CLK>,
302 <&clk IMX8QM_I2C4_IPG_CLK>;
303 clock-names = "per", "ipg";
304 assigned-clocks = <&clk IMX8QM_I2C4_CLK>;
305 assigned-clock-rates = <24000000>;
306 power-domains = <&pd_dma_lpi2c4>;
310 gpio0: gpio@5d080000 {
311 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
312 reg = <0x0 0x5d080000 0x0 0x10000>;
313 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
316 power-domains = <&pd_lsio_gpio0>;
317 interrupt-controller;
318 #interrupt-cells = <2>;
321 gpio1: gpio@5d090000 {
322 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
323 reg = <0x0 0x5d090000 0x0 0x10000>;
324 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
327 power-domains = <&pd_lsio_gpio1>;
328 interrupt-controller;
329 #interrupt-cells = <2>;
332 gpio2: gpio@5d0a0000 {
333 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
334 reg = <0x0 0x5d0a0000 0x0 0x10000>;
335 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
338 power-domains = <&pd_lsio_gpio2>;
339 interrupt-controller;
340 #interrupt-cells = <2>;
343 gpio3: gpio@5d0b0000 {
344 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
345 reg = <0x0 0x5d0b0000 0x0 0x10000>;
346 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
349 power-domains = <&pd_lsio_gpio3>;
350 interrupt-controller;
351 #interrupt-cells = <2>;
354 gpio4: gpio@5d0c0000 {
355 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
356 reg = <0x0 0x5d0c0000 0x0 0x10000>;
357 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
360 power-domains = <&pd_lsio_gpio4>;
361 interrupt-controller;
362 #interrupt-cells = <2>;
365 gpio5: gpio@5d0d0000 {
366 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
367 reg = <0x0 0x5d0d0000 0x0 0x10000>;
368 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
371 power-domains = <&pd_lsio_gpio5>;
372 interrupt-controller;
373 #interrupt-cells = <2>;
376 gpio6: gpio@5d0e0000 {
377 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
378 reg = <0x0 0x5d0e0000 0x0 0x10000>;
379 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
382 power-domains = <&pd_lsio_gpio6>;
383 interrupt-controller;
384 #interrupt-cells = <2>;
387 gpio7: gpio@5d0f0000 {
388 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
389 reg = <0x0 0x5d0f0000 0x0 0x10000>;
390 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
393 power-domains = <&pd_lsio_gpio7>;
394 interrupt-controller;
395 #interrupt-cells = <2>;
398 lpuart0: serial@5a060000 {
399 compatible = "fsl,imx8qm-lpuart";
400 reg = <0x0 0x5a060000 0x0 0x1000>;
401 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
402 clocks = <&clk IMX8QM_UART0_CLK>,
403 <&clk IMX8QM_UART0_IPG_CLK>;
404 clock-names = "per", "ipg";
405 assigned-clocks = <&clk IMX8QM_UART0_CLK>;
406 assigned-clock-rates = <80000000>;
407 power-domains = <&pd_dma_lpuart0>;
411 lpuart1: serial@5a070000 {
412 compatible = "fsl,imx8qm-lpuart";
413 reg = <0x0 0x5a070000 0x0 0x1000>;
414 interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
415 clocks = <&clk IMX8QM_UART1_CLK>,
416 <&clk IMX8QM_UART1_IPG_CLK>;
417 clock-names = "per", "ipg";
418 assigned-clocks = <&clk IMX8QM_UART1_CLK>;
419 assigned-clock-rates = <80000000>;
420 power-domains = <&pd_dma_lpuart1>;
424 lpuart2: serial@5a080000 {
425 compatible = "fsl,imx8qm-lpuart";
426 reg = <0x0 0x5a080000 0x0 0x1000>;
427 interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
428 clocks = <&clk IMX8QM_UART2_CLK>,
429 <&clk IMX8QM_UART2_IPG_CLK>;
430 clock-names = "per", "ipg";
431 assigned-clocks = <&clk IMX8QM_UART2_CLK>;
432 assigned-clock-rates = <80000000>;
433 power-domains = <&pd_dma_lpuart2>;
437 lpuart3: serial@5a090000 {
438 compatible = "fsl,imx8qm-lpuart";
439 reg = <0x0 0x5a090000 0x0 0x1000>;
440 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&clk IMX8QM_UART3_CLK>,
442 <&clk IMX8QM_UART3_IPG_CLK>;
443 clock-names = "per", "ipg";
444 assigned-clocks = <&clk IMX8QM_UART3_CLK>;
445 assigned-clock-rates = <80000000>;
446 power-domains = <&pd_dma_lpuart3>;
450 lpuart4: serial@5a0a0000 {
451 compatible = "fsl,imx8qm-lpuart";
452 reg = <0x0 0x5a0a0000 0x0 0x1000>;
453 interrupts = <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
454 clocks = <&clk IMX8QM_UART4_CLK>,
455 <&clk IMX8QM_UART4_IPG_CLK>;
456 clock-names = "per", "ipg";
457 assigned-clocks = <&clk IMX8QM_UART4_CLK>;
458 assigned-clock-rates = <80000000>;
459 power-domains = <&pd_dma_lpuart4>;
463 usdhc1: usdhc@5b010000 {
464 compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
465 interrupt-parent = <&gic>;
466 interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
467 reg = <0x0 0x5b010000 0x0 0x10000>;
468 clocks = <&clk IMX8QM_SDHC0_IPG_CLK>,
469 <&clk IMX8QM_SDHC0_CLK>,
470 <&clk IMX8QM_CLK_DUMMY>;
471 clock-names = "ipg", "per", "ahb";
472 assigned-clocks = <&clk IMX8QM_SDHC0_DIV>;
473 assigned-clock-rates = <400000000>;
474 power-domains = <&pd_conn_sdch0>;
475 fsl,tuning-start-tap = <20>;
476 fsl,tuning-step= <2>;
480 usdhc2: usdhc@5b020000 {
481 compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
482 interrupt-parent = <&gic>;
483 interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
484 reg = <0x0 0x5b020000 0x0 0x10000>;
485 clocks = <&clk IMX8QM_SDHC1_IPG_CLK>,
486 <&clk IMX8QM_SDHC1_CLK>,
487 <&clk IMX8QM_CLK_DUMMY>;
488 clock-names = "ipg", "per", "ahb";
489 assigned-clocks = <&clk IMX8QM_SDHC1_DIV>;
490 assigned-clock-rates = <200000000>;
491 power-domains = <&pd_conn_sdch1>;
492 fsl,tuning-start-tap = <20>;
493 fsl,tuning-step= <2>;
497 usdhc3: usdhc@5b030000 {
498 compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
499 interrupt-parent = <&gic>;
500 interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
501 reg = <0x0 0x5b030000 0x0 0x10000>;
502 clocks = <&clk IMX8QM_SDHC2_IPG_CLK>,
503 <&clk IMX8QM_SDHC2_CLK>,
504 <&clk IMX8QM_CLK_DUMMY>;
505 clock-names = "ipg", "per", "ahb";
506 assigned-clocks = <&clk IMX8QM_SDHC2_DIV>;
507 assigned-clock-rates = <200000000>;
508 power-domains = <&pd_conn_sdch2>;
512 fec1: ethernet@5b040000 {
513 compatible = "fsl,imx8qm-fec", "fsl,imx7d-fec";
514 reg = <0x0 0x5b040000 0x0 0x10000>;
515 interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
516 <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
517 <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
518 <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
519 clocks = <&clk IMX8QM_ENET0_IPG_CLK>,
520 <&clk IMX8QM_ENET0_AHB_CLK>,
521 <&clk IMX8QM_ENET0_RGMII_TX_CLK>,
522 <&clk IMX8QM_ENET0_PTP_CLK>,
523 <&clk IMX8QM_ENET0_TX_CLK>;
524 clock-names = "ipg", "ahb", "enet_clk_ref", "ptp",
526 assigned-clocks = <&clk IMX8QM_ENET0_ROOT_DIV>,
527 <&clk IMX8QM_ENET0_REF_DIV>;
528 assigned-clock-rates = <250000000>, <125000000>;
529 fsl,num-tx-queues=<3>;
530 fsl,num-rx-queues=<3>;
531 fsl,wakeup_irq = <0>;
532 power-domains = <&pd_conn_enet0>;
536 fec2: ethernet@5b050000 {
537 compatible = "fsl,imx8qm-fec", "fsl,imx7d-fec";
538 reg = <0x0 0x5b050000 0x0 0x10000>;
539 interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
540 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
541 <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
542 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
543 clocks = <&clk IMX8QM_ENET1_IPG_CLK>,
544 <&clk IMX8QM_ENET1_AHB_CLK>,
545 <&clk IMX8QM_ENET1_RGMII_TX_CLK>,
546 <&clk IMX8QM_ENET1_PTP_CLK>,
547 <&clk IMX8QM_ENET1_TX_CLK>;
548 clock-names = "ipg", "ahb", "enet_clk_ref", "ptp",
550 assigned-clocks = <&clk IMX8QM_ENET1_ROOT_DIV>,
551 <&clk IMX8QM_ENET1_REF_DIV>;
552 assigned-clock-rates = <250000000>, <125000000>;
553 fsl,num-tx-queues=<3>;
554 fsl,num-rx-queues=<3>;
555 fsl,wakeup_irq = <0>;
556 power-domains = <&pd_conn_enet1>;
562 clocks = <&clk IMX8QM_A53_DIV>;