blob: db019599904e8d2a717b73dd957606911ca72bd5 [file] [log] [blame]
Peng Fand11b1572019-03-05 02:32:25 +00001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright 2018 NXP
4 */
5
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>
14
15/ {
16 compatible = "fsl,imx8qm";
17 interrupt-parent = <&gic>;
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 aliases {
22 ethernet0 = &fec1;
23 ethernet1 = &fec2;
24 serial0 = &lpuart0;
Marcel Ziswilerac9c3ef2019-05-31 19:00:15 +030025 serial1 = &lpuart1;
26 serial2 = &lpuart2;
27 serial3 = &lpuart3;
28 serial4 = &lpuart4;
Peng Fand11b1572019-03-05 02:32:25 +000029 mmc0 = &usdhc1;
30 mmc1 = &usdhc2;
31 mmc2 = &usdhc3;
32 };
33
34 memory@80000000 {
35 device_type = "memory";
36 reg = <0x00000000 0x80000000 0 0x40000000>;
37 /* DRAM space - 1, size : 1 GB DRAM */
38 };
39
40 gic: interrupt-controller@51a00000 {
41 compatible = "arm,gic-v3";
42 reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
43 <0x0 0x51b00000 0 0xC0000>, /* GICR */
44 <0x0 0x52000000 0 0x2000>, /* GICC */
45 <0x0 0x52010000 0 0x1000>, /* GICH */
46 <0x0 0x52020000 0 0x20000>; /* GICV */
47 #interrupt-cells = <3>;
48 interrupt-controller;
49 interrupts = <GIC_PPI 9
50 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
51 interrupt-parent = <&gic>;
52 };
53
54 mu: mu@5d1c0000 {
55 compatible = "fsl,imx8-mu";
56 reg = <0x0 0x5d1c0000 0x0 0x10000>;
57 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
58 interrupt-parent = <&gic>;
59 fsl,scu_ap_mu_id = <0>;
60 status = "okay";
61
62 clk: clk {
63 compatible = "fsl,imx8qm-clk";
64 #clock-cells = <1>;
65 };
66
67 iomuxc: iomuxc {
68 compatible = "fsl,imx8qm-iomuxc";
69 };
70 };
71
72 imx8qm-pm {
73 compatible = "simple-bus";
74 #address-cells = <1>;
75 #size-cells = <0>;
76
77 pd_lsio: PD_LSIO {
78 compatible = "nxp,imx8-pd";
79 reg = <SC_R_LAST>;
80 #power-domain-cells = <0>;
81 #address-cells = <1>;
82 #size-cells = <0>;
83
84 pd_lsio_gpio0: PD_LSIO_GPIO_0 {
85 reg = <SC_R_GPIO_0>;
86 #power-domain-cells = <0>;
87 power-domains = <&pd_lsio>;
88 };
89 pd_lsio_gpio1: PD_LSIO_GPIO_1 {
90 reg = <SC_R_GPIO_1>;
91 #power-domain-cells = <0>;
92 power-domains = <&pd_lsio>;
93 };
94 pd_lsio_gpio2: PD_LSIO_GPIO_2 {
95 reg = <SC_R_GPIO_2>;
96 #power-domain-cells = <0>;
97 power-domains = <&pd_lsio>;
98 };
99 pd_lsio_gpio3: PD_LSIO_GPIO_3 {
100 reg = <SC_R_GPIO_3>;
101 #power-domain-cells = <0>;
102 power-domains = <&pd_lsio>;
103 };
104 pd_lsio_gpio4: PD_LSIO_GPIO_4 {
105 reg = <SC_R_GPIO_4>;
106 #power-domain-cells = <0>;
107 power-domains = <&pd_lsio>;
108 };
109 pd_lsio_gpio5: PD_LSIO_GPIO_5{
110 reg = <SC_R_GPIO_5>;
111 #power-domain-cells = <0>;
112 power-domains = <&pd_lsio>;
113 };
114 pd_lsio_gpio6:PD_LSIO_GPIO_6 {
115 reg = <SC_R_GPIO_6>;
116 #power-domain-cells = <0>;
117 power-domains = <&pd_lsio>;
118 };
119 pd_lsio_gpio7: PD_LSIO_GPIO_7 {
120 reg = <SC_R_GPIO_7>;
121 #power-domain-cells = <0>;
122 power-domains = <&pd_lsio>;
123 };
124 };
125
126 pd_conn: PD_CONN {
127 compatible = "nxp,imx8-pd";
128 reg = <SC_R_LAST>;
129 #power-domain-cells = <0>;
130 #address-cells = <1>;
131 #size-cells = <0>;
132
133 pd_conn_sdch0: PD_CONN_SDHC_0 {
134 reg = <SC_R_SDHC_0>;
135 #power-domain-cells = <0>;
136 power-domains = <&pd_conn>;
137 };
138 pd_conn_sdch1: PD_CONN_SDHC_1 {
139 reg = <SC_R_SDHC_1>;
140 #power-domain-cells = <0>;
141 power-domains = <&pd_conn>;
142 };
143 pd_conn_sdch2: PD_CONN_SDHC_2 {
144 reg = <SC_R_SDHC_2>;
145 #power-domain-cells = <0>;
146 power-domains = <&pd_conn>;
147 };
148 pd_conn_enet0: PD_CONN_ENET_0 {
149 reg = <SC_R_ENET_0>;
150 #power-domain-cells = <0>;
151 power-domains = <&pd_conn>;
152 wakeup-irq = <258>;
153 };
154 pd_conn_enet1: PD_CONN_ENET_1 {
155 reg = <SC_R_ENET_1>;
156 #power-domain-cells = <0>;
157 power-domains = <&pd_conn>;
158 fsl,wakeup_irq = <262>;
159 };
160 };
161
162 pd_dma: PD_DMA {
163 compatible = "nxp,imx8-pd";
164 reg = <SC_R_LAST>;
165 #power-domain-cells = <0>;
166 #address-cells = <1>;
167 #size-cells = <0>;
168
169 pd_dma_lpi2c0: PD_DMA_I2C_0 {
170 reg = <SC_R_I2C_0>;
171 #power-domain-cells = <0>;
172 power-domains = <&pd_dma>;
173 };
174 pd_dma_lpi2c1: PD_DMA_I2C_1 {
175 reg = <SC_R_I2C_1>;
176 #power-domain-cells = <0>;
177 power-domains = <&pd_dma>;
178 };
179 pd_dma_lpi2c2:PD_DMA_I2C_2 {
180 reg = <SC_R_I2C_2>;
181 #power-domain-cells = <0>;
182 power-domains = <&pd_dma>;
183 };
184 pd_dma_lpi2c3: PD_DMA_I2C_3 {
185 reg = <SC_R_I2C_3>;
186 #power-domain-cells = <0>;
187 power-domains = <&pd_dma>;
188 };
189 pd_dma_lpi2c4: PD_DMA_I2C_4 {
190 reg = <SC_R_I2C_4>;
191 #power-domain-cells = <0>;
192 power-domains = <&pd_dma>;
193 };
194 pd_dma_lpuart0: PD_DMA_UART0 {
195 reg = <SC_R_UART_0>;
196 #power-domain-cells = <0>;
197 power-domains = <&pd_dma>;
198 wakeup-irq = <345>;
199 };
Marcel Ziswilerac9c3ef2019-05-31 19:00:15 +0300200 pd_dma_lpuart1: PD_DMA_UART1 {
201 reg = <SC_R_UART_1>;
202 #power-domain-cells = <0>;
203 power-domains = <&pd_dma>;
204 wakeup-irq = <346>;
205 };
206 pd_dma_lpuart2: PD_DMA_UART2 {
207 reg = <SC_R_UART_2>;
208 #power-domain-cells = <0>;
209 power-domains = <&pd_dma>;
210 wakeup-irq = <347>;
211 };
212 pd_dma_lpuart3: PD_DMA_UART3 {
213 reg = <SC_R_UART_3>;
214 #power-domain-cells = <0>;
215 power-domains = <&pd_dma>;
216 wakeup-irq = <348>;
217 };
218 pd_dma_lpuart4: PD_DMA_UART4 {
219 reg = <SC_R_UART_4>;
220 #power-domain-cells = <0>;
221 power-domains = <&pd_dma>;
222 wakeup-irq = <349>;
223 };
Peng Fand11b1572019-03-05 02:32:25 +0000224 };
225 };
226
227 gpio0: gpio@5d080000 {
228 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
229 reg = <0x0 0x5d080000 0x0 0x10000>;
230 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
231 gpio-controller;
232 #gpio-cells = <2>;
233 power-domains = <&pd_lsio_gpio0>;
234 interrupt-controller;
235 #interrupt-cells = <2>;
236 };
237
238 gpio1: gpio@5d090000 {
239 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
240 reg = <0x0 0x5d090000 0x0 0x10000>;
241 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
242 gpio-controller;
243 #gpio-cells = <2>;
244 power-domains = <&pd_lsio_gpio1>;
245 interrupt-controller;
246 #interrupt-cells = <2>;
247 };
248
249 gpio2: gpio@5d0a0000 {
250 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
251 reg = <0x0 0x5d0a0000 0x0 0x10000>;
252 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
253 gpio-controller;
254 #gpio-cells = <2>;
255 power-domains = <&pd_lsio_gpio2>;
256 interrupt-controller;
257 #interrupt-cells = <2>;
258 };
259
260 gpio3: gpio@5d0b0000 {
261 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
262 reg = <0x0 0x5d0b0000 0x0 0x10000>;
263 interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
264 gpio-controller;
265 #gpio-cells = <2>;
266 power-domains = <&pd_lsio_gpio3>;
267 interrupt-controller;
268 #interrupt-cells = <2>;
269 };
270
271 gpio4: gpio@5d0c0000 {
272 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
273 reg = <0x0 0x5d0c0000 0x0 0x10000>;
274 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
275 gpio-controller;
276 #gpio-cells = <2>;
277 power-domains = <&pd_lsio_gpio4>;
278 interrupt-controller;
279 #interrupt-cells = <2>;
280 };
281
282 gpio5: gpio@5d0d0000 {
283 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
284 reg = <0x0 0x5d0d0000 0x0 0x10000>;
285 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
286 gpio-controller;
287 #gpio-cells = <2>;
288 power-domains = <&pd_lsio_gpio5>;
289 interrupt-controller;
290 #interrupt-cells = <2>;
291 };
292
293 gpio6: gpio@5d0e0000 {
294 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
295 reg = <0x0 0x5d0e0000 0x0 0x10000>;
296 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
297 gpio-controller;
298 #gpio-cells = <2>;
299 power-domains = <&pd_lsio_gpio6>;
300 interrupt-controller;
301 #interrupt-cells = <2>;
302 };
303
304 gpio7: gpio@5d0f0000 {
305 compatible = "fsl,imx8qm-gpio", "fsl,imx35-gpio";
306 reg = <0x0 0x5d0f0000 0x0 0x10000>;
307 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
308 gpio-controller;
309 #gpio-cells = <2>;
310 power-domains = <&pd_lsio_gpio7>;
311 interrupt-controller;
312 #interrupt-cells = <2>;
313 };
314
315 lpuart0: serial@5a060000 {
316 compatible = "fsl,imx8qm-lpuart";
317 reg = <0x0 0x5a060000 0x0 0x1000>;
318 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
319 clocks = <&clk IMX8QM_UART0_CLK>,
320 <&clk IMX8QM_UART0_IPG_CLK>;
321 clock-names = "per", "ipg";
322 assigned-clocks = <&clk IMX8QM_UART0_CLK>;
323 assigned-clock-rates = <80000000>;
324 power-domains = <&pd_dma_lpuart0>;
325 status = "disabled";
326 };
327
Marcel Ziswilerac9c3ef2019-05-31 19:00:15 +0300328 lpuart1: serial@5a070000 {
329 compatible = "fsl,imx8qm-lpuart";
330 reg = <0x0 0x5a070000 0x0 0x1000>;
331 interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
332 clocks = <&clk IMX8QM_UART1_CLK>,
333 <&clk IMX8QM_UART1_IPG_CLK>;
334 clock-names = "per", "ipg";
335 assigned-clocks = <&clk IMX8QM_UART1_CLK>;
336 assigned-clock-rates = <80000000>;
337 power-domains = <&pd_dma_lpuart1>;
338 status = "disabled";
339 };
340
341 lpuart2: serial@5a080000 {
342 compatible = "fsl,imx8qm-lpuart";
343 reg = <0x0 0x5a080000 0x0 0x1000>;
344 interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
345 clocks = <&clk IMX8QM_UART2_CLK>,
346 <&clk IMX8QM_UART2_IPG_CLK>;
347 clock-names = "per", "ipg";
348 assigned-clocks = <&clk IMX8QM_UART2_CLK>;
349 assigned-clock-rates = <80000000>;
350 power-domains = <&pd_dma_lpuart2>;
351 status = "disabled";
352 };
353
354 lpuart3: serial@5a090000 {
355 compatible = "fsl,imx8qm-lpuart";
356 reg = <0x0 0x5a090000 0x0 0x1000>;
357 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>;
358 clocks = <&clk IMX8QM_UART3_CLK>,
359 <&clk IMX8QM_UART3_IPG_CLK>;
360 clock-names = "per", "ipg";
361 assigned-clocks = <&clk IMX8QM_UART3_CLK>;
362 assigned-clock-rates = <80000000>;
363 power-domains = <&pd_dma_lpuart3>;
364 status = "disabled";
365 };
366
367 lpuart4: serial@5a0a0000 {
368 compatible = "fsl,imx8qm-lpuart";
369 reg = <0x0 0x5a0a0000 0x0 0x1000>;
370 interrupts = <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
371 clocks = <&clk IMX8QM_UART4_CLK>,
372 <&clk IMX8QM_UART4_IPG_CLK>;
373 clock-names = "per", "ipg";
374 assigned-clocks = <&clk IMX8QM_UART4_CLK>;
375 assigned-clock-rates = <80000000>;
376 power-domains = <&pd_dma_lpuart4>;
377 status = "disabled";
378 };
379
Peng Fand11b1572019-03-05 02:32:25 +0000380 usdhc1: usdhc@5b010000 {
381 compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
382 interrupt-parent = <&gic>;
383 interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
384 reg = <0x0 0x5b010000 0x0 0x10000>;
385 clocks = <&clk IMX8QM_SDHC0_IPG_CLK>,
386 <&clk IMX8QM_SDHC0_CLK>,
387 <&clk IMX8QM_CLK_DUMMY>;
388 clock-names = "ipg", "per", "ahb";
389 assigned-clocks = <&clk IMX8QM_SDHC0_DIV>;
390 assigned-clock-rates = <400000000>;
391 power-domains = <&pd_conn_sdch0>;
392 fsl,tuning-start-tap = <20>;
393 fsl,tuning-step= <2>;
394 status = "disabled";
395 };
396
397 usdhc2: usdhc@5b020000 {
398 compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
399 interrupt-parent = <&gic>;
400 interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>;
401 reg = <0x0 0x5b020000 0x0 0x10000>;
402 clocks = <&clk IMX8QM_SDHC1_IPG_CLK>,
403 <&clk IMX8QM_SDHC1_CLK>,
404 <&clk IMX8QM_CLK_DUMMY>;
405 clock-names = "ipg", "per", "ahb";
406 assigned-clocks = <&clk IMX8QM_SDHC1_DIV>;
407 assigned-clock-rates = <200000000>;
408 power-domains = <&pd_conn_sdch1>;
409 fsl,tuning-start-tap = <20>;
410 fsl,tuning-step= <2>;
411 status = "disabled";
412 };
413
414 usdhc3: usdhc@5b030000 {
415 compatible = "fsl,imx8qm-usdhc", "fsl,imx6sl-usdhc";
416 interrupt-parent = <&gic>;
417 interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
418 reg = <0x0 0x5b030000 0x0 0x10000>;
419 clocks = <&clk IMX8QM_SDHC2_IPG_CLK>,
420 <&clk IMX8QM_SDHC2_CLK>,
421 <&clk IMX8QM_CLK_DUMMY>;
422 clock-names = "ipg", "per", "ahb";
423 assigned-clocks = <&clk IMX8QM_SDHC2_DIV>;
424 assigned-clock-rates = <200000000>;
425 power-domains = <&pd_conn_sdch2>;
426 status = "disabled";
427 };
428
429 fec1: ethernet@5b040000 {
430 compatible = "fsl,imx8qm-fec", "fsl,imx7d-fec";
431 reg = <0x0 0x5b040000 0x0 0x10000>;
432 interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
433 <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
434 <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
435 <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
436 clocks = <&clk IMX8QM_ENET0_IPG_CLK>,
437 <&clk IMX8QM_ENET0_AHB_CLK>,
438 <&clk IMX8QM_ENET0_RGMII_TX_CLK>,
439 <&clk IMX8QM_ENET0_PTP_CLK>,
440 <&clk IMX8QM_ENET0_TX_CLK>;
441 clock-names = "ipg", "ahb", "enet_clk_ref", "ptp",
442 "enet_2x_txclk";
443 assigned-clocks = <&clk IMX8QM_ENET0_ROOT_DIV>,
444 <&clk IMX8QM_ENET0_REF_DIV>;
445 assigned-clock-rates = <250000000>, <125000000>;
446 fsl,num-tx-queues=<3>;
447 fsl,num-rx-queues=<3>;
448 fsl,wakeup_irq = <0>;
449 power-domains = <&pd_conn_enet0>;
450 status = "disabled";
451 };
452
453 fec2: ethernet@5b050000 {
454 compatible = "fsl,imx8qm-fec", "fsl,imx7d-fec";
455 reg = <0x0 0x5b050000 0x0 0x10000>;
456 interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
457 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
458 <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
459 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
460 clocks = <&clk IMX8QM_ENET1_IPG_CLK>,
461 <&clk IMX8QM_ENET1_AHB_CLK>,
462 <&clk IMX8QM_ENET1_RGMII_TX_CLK>,
463 <&clk IMX8QM_ENET1_PTP_CLK>,
464 <&clk IMX8QM_ENET1_TX_CLK>;
465 clock-names = "ipg", "ahb", "enet_clk_ref", "ptp",
466 "enet_2x_txclk";
467 assigned-clocks = <&clk IMX8QM_ENET1_ROOT_DIV>,
468 <&clk IMX8QM_ENET1_REF_DIV>;
469 assigned-clock-rates = <250000000>, <125000000>;
470 fsl,num-tx-queues=<3>;
471 fsl,num-rx-queues=<3>;
472 fsl,wakeup_irq = <0>;
473 power-domains = <&pd_conn_enet1>;
474 status = "disabled";
475 };
476};
477
478&A53_0 {
479 clocks = <&clk IMX8QM_A53_DIV>;
480};