Commit | Line | Data |
---|---|---|
748f908c LS |
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> | |
fdbcc04d | 8 | #include <dt-bindings/power/imx8mq-power.h> |
fc26e600 | 9 | #include <dt-bindings/reset/imx8mq-reset.h> |
748f908c | 10 | #include <dt-bindings/gpio/gpio.h> |
a01194d7 | 11 | #include "dt-bindings/input/input.h" |
748f908c | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
e464fd2b | 13 | #include <dt-bindings/thermal/thermal.h> |
ad1abc8a | 14 | #include <dt-bindings/interconnect/imx8mq.h> |
748f908c LS |
15 | #include "imx8mq-pinfunc.h" |
16 | ||
17 | / { | |
c412123f | 18 | interrupt-parent = <&gpc>; |
748f908c LS |
19 | |
20 | #address-cells = <2>; | |
21 | #size-cells = <2>; | |
22 | ||
23 | aliases { | |
614d8846 | 24 | ethernet0 = &fec1; |
1f370972 AH |
25 | gpio0 = &gpio1; |
26 | gpio1 = &gpio2; | |
27 | gpio2 = &gpio3; | |
28 | gpio3 = &gpio4; | |
29 | gpio4 = &gpio5; | |
748f908c LS |
30 | i2c0 = &i2c1; |
31 | i2c1 = &i2c2; | |
32 | i2c2 = &i2c3; | |
33 | i2c3 = &i2c4; | |
e9a8d996 PF |
34 | mmc0 = &usdhc1; |
35 | mmc1 = &usdhc2; | |
748f908c LS |
36 | serial0 = &uart1; |
37 | serial1 = &uart2; | |
38 | serial2 = &uart3; | |
39 | serial3 = &uart4; | |
85761f45 FE |
40 | spi0 = &ecspi1; |
41 | spi1 = &ecspi2; | |
42 | spi2 = &ecspi3; | |
748f908c LS |
43 | }; |
44 | ||
45 | ckil: clock-ckil { | |
46 | compatible = "fixed-clock"; | |
47 | #clock-cells = <0>; | |
48 | clock-frequency = <32768>; | |
49 | clock-output-names = "ckil"; | |
50 | }; | |
51 | ||
52 | osc_25m: clock-osc-25m { | |
53 | compatible = "fixed-clock"; | |
54 | #clock-cells = <0>; | |
55 | clock-frequency = <25000000>; | |
56 | clock-output-names = "osc_25m"; | |
57 | }; | |
58 | ||
59 | osc_27m: clock-osc-27m { | |
60 | compatible = "fixed-clock"; | |
61 | #clock-cells = <0>; | |
62 | clock-frequency = <27000000>; | |
63 | clock-output-names = "osc_27m"; | |
64 | }; | |
65 | ||
66 | clk_ext1: clock-ext1 { | |
67 | compatible = "fixed-clock"; | |
68 | #clock-cells = <0>; | |
69 | clock-frequency = <133000000>; | |
70 | clock-output-names = "clk_ext1"; | |
71 | }; | |
72 | ||
73 | clk_ext2: clock-ext2 { | |
74 | compatible = "fixed-clock"; | |
75 | #clock-cells = <0>; | |
76 | clock-frequency = <133000000>; | |
77 | clock-output-names = "clk_ext2"; | |
78 | }; | |
79 | ||
80 | clk_ext3: clock-ext3 { | |
81 | compatible = "fixed-clock"; | |
82 | #clock-cells = <0>; | |
83 | clock-frequency = <133000000>; | |
84 | clock-output-names = "clk_ext3"; | |
85 | }; | |
86 | ||
87 | clk_ext4: clock-ext4 { | |
88 | compatible = "fixed-clock"; | |
89 | #clock-cells = <0>; | |
90 | clock-frequency= <133000000>; | |
91 | clock-output-names = "clk_ext4"; | |
92 | }; | |
93 | ||
94 | cpus { | |
95 | #address-cells = <1>; | |
96 | #size-cells = <0>; | |
97 | ||
98 | A53_0: cpu@0 { | |
99 | device_type = "cpu"; | |
100 | compatible = "arm,cortex-a53"; | |
101 | reg = <0x0>; | |
b810641a AV |
102 | clock-latency = <61036>; /* two CLK32 periods */ |
103 | clocks = <&clk IMX8MQ_CLK_ARM>; | |
748f908c LS |
104 | enable-method = "psci"; |
105 | next-level-cache = <&A53_L2>; | |
64d26f8c | 106 | operating-points-v2 = <&a53_opp_table>; |
e464fd2b | 107 | #cooling-cells = <2>; |
12629c5c LC |
108 | nvmem-cells = <&cpu_speed_grade>; |
109 | nvmem-cell-names = "speed_grade"; | |
748f908c LS |
110 | }; |
111 | ||
112 | A53_1: cpu@1 { | |
113 | device_type = "cpu"; | |
114 | compatible = "arm,cortex-a53"; | |
115 | reg = <0x1>; | |
b810641a AV |
116 | clock-latency = <61036>; /* two CLK32 periods */ |
117 | clocks = <&clk IMX8MQ_CLK_ARM>; | |
748f908c LS |
118 | enable-method = "psci"; |
119 | next-level-cache = <&A53_L2>; | |
64d26f8c | 120 | operating-points-v2 = <&a53_opp_table>; |
e464fd2b | 121 | #cooling-cells = <2>; |
748f908c LS |
122 | }; |
123 | ||
124 | A53_2: cpu@2 { | |
125 | device_type = "cpu"; | |
126 | compatible = "arm,cortex-a53"; | |
127 | reg = <0x2>; | |
b810641a AV |
128 | clock-latency = <61036>; /* two CLK32 periods */ |
129 | clocks = <&clk IMX8MQ_CLK_ARM>; | |
748f908c LS |
130 | enable-method = "psci"; |
131 | next-level-cache = <&A53_L2>; | |
64d26f8c | 132 | operating-points-v2 = <&a53_opp_table>; |
e464fd2b | 133 | #cooling-cells = <2>; |
748f908c LS |
134 | }; |
135 | ||
136 | A53_3: cpu@3 { | |
137 | device_type = "cpu"; | |
138 | compatible = "arm,cortex-a53"; | |
139 | reg = <0x3>; | |
b810641a AV |
140 | clock-latency = <61036>; /* two CLK32 periods */ |
141 | clocks = <&clk IMX8MQ_CLK_ARM>; | |
748f908c LS |
142 | enable-method = "psci"; |
143 | next-level-cache = <&A53_L2>; | |
64d26f8c | 144 | operating-points-v2 = <&a53_opp_table>; |
e464fd2b | 145 | #cooling-cells = <2>; |
748f908c LS |
146 | }; |
147 | ||
148 | A53_L2: l2-cache0 { | |
149 | compatible = "cache"; | |
150 | }; | |
151 | }; | |
152 | ||
dbde7ec3 FE |
153 | a53_opp_table: opp-table { |
154 | compatible = "operating-points-v2"; | |
155 | opp-shared; | |
156 | ||
157 | opp-800000000 { | |
158 | opp-hz = /bits/ 64 <800000000>; | |
159 | opp-microvolt = <900000>; | |
12629c5c LC |
160 | /* Industrial only */ |
161 | opp-supported-hw = <0xf>, <0x4>; | |
162 | clock-latency-ns = <150000>; | |
db4cfe2f | 163 | opp-suspend; |
12629c5c LC |
164 | }; |
165 | ||
166 | opp-1000000000 { | |
167 | opp-hz = /bits/ 64 <1000000000>; | |
168 | opp-microvolt = <900000>; | |
169 | /* Consumer only */ | |
170 | opp-supported-hw = <0xe>, <0x3>; | |
dbde7ec3 | 171 | clock-latency-ns = <150000>; |
db4cfe2f | 172 | opp-suspend; |
dbde7ec3 FE |
173 | }; |
174 | ||
8cfd813c LS |
175 | opp-1300000000 { |
176 | opp-hz = /bits/ 64 <1300000000>; | |
dbde7ec3 | 177 | opp-microvolt = <1000000>; |
9eced3a2 | 178 | opp-supported-hw = <0xc>, <0x4>; |
12629c5c | 179 | clock-latency-ns = <150000>; |
db4cfe2f | 180 | opp-suspend; |
12629c5c LC |
181 | }; |
182 | ||
183 | opp-1500000000 { | |
184 | opp-hz = /bits/ 64 <1500000000>; | |
185 | opp-microvolt = <1000000>; | |
9eced3a2 | 186 | opp-supported-hw = <0x8>, <0x3>; |
dbde7ec3 | 187 | clock-latency-ns = <150000>; |
db4cfe2f | 188 | opp-suspend; |
dbde7ec3 FE |
189 | }; |
190 | }; | |
191 | ||
b3f6a5f2 CC |
192 | pmu { |
193 | compatible = "arm,cortex-a53-pmu"; | |
194 | interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; | |
195 | interrupt-parent = <&gic>; | |
b3f6a5f2 CC |
196 | }; |
197 | ||
748f908c LS |
198 | psci { |
199 | compatible = "arm,psci-1.0"; | |
200 | method = "smc"; | |
201 | }; | |
202 | ||
cddbea8d | 203 | thermal-zones { |
c5486819 | 204 | cpu_thermal: cpu-thermal { |
cddbea8d FE |
205 | polling-delay-passive = <250>; |
206 | polling-delay = <2000>; | |
207 | thermal-sensors = <&tmu 0>; | |
208 | ||
209 | trips { | |
210 | cpu_alert: cpu-alert { | |
211 | temperature = <80000>; | |
212 | hysteresis = <2000>; | |
213 | type = "passive"; | |
214 | }; | |
215 | ||
216 | cpu-crit { | |
217 | temperature = <90000>; | |
218 | hysteresis = <2000>; | |
219 | type = "critical"; | |
220 | }; | |
221 | }; | |
222 | ||
223 | cooling-maps { | |
224 | map0 { | |
225 | trip = <&cpu_alert>; | |
226 | cooling-device = | |
227 | <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
228 | <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
229 | <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
230 | <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
231 | }; | |
232 | }; | |
233 | }; | |
234 | ||
235 | gpu-thermal { | |
236 | polling-delay-passive = <250>; | |
237 | polling-delay = <2000>; | |
238 | thermal-sensors = <&tmu 1>; | |
239 | ||
240 | trips { | |
9404f2ea GG |
241 | gpu_alert: gpu-alert { |
242 | temperature = <80000>; | |
243 | hysteresis = <2000>; | |
244 | type = "passive"; | |
245 | }; | |
246 | ||
cddbea8d FE |
247 | gpu-crit { |
248 | temperature = <90000>; | |
249 | hysteresis = <2000>; | |
250 | type = "critical"; | |
251 | }; | |
252 | }; | |
9404f2ea GG |
253 | |
254 | cooling-maps { | |
255 | map0 { | |
256 | trip = <&gpu_alert>; | |
257 | cooling-device = | |
258 | <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
259 | }; | |
260 | }; | |
cddbea8d FE |
261 | }; |
262 | ||
263 | vpu-thermal { | |
264 | polling-delay-passive = <250>; | |
265 | polling-delay = <2000>; | |
266 | thermal-sensors = <&tmu 2>; | |
267 | ||
268 | trips { | |
269 | vpu-crit { | |
270 | temperature = <90000>; | |
271 | hysteresis = <2000>; | |
272 | type = "critical"; | |
273 | }; | |
274 | }; | |
275 | }; | |
276 | }; | |
277 | ||
748f908c LS |
278 | timer { |
279 | compatible = "arm,armv8-timer"; | |
280 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */ | |
281 | <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */ | |
282 | <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */ | |
283 | <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */ | |
284 | interrupt-parent = <&gic>; | |
285 | arm,no-tick-in-suspend; | |
286 | }; | |
287 | ||
288 | soc@0 { | |
ce58459d | 289 | compatible = "fsl,imx8mq-soc", "simple-bus"; |
748f908c LS |
290 | #address-cells = <1>; |
291 | #size-cells = <1>; | |
292 | ranges = <0x0 0x0 0x0 0x3e000000>; | |
ca04fed4 | 293 | dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>; |
cbff2379 AG |
294 | nvmem-cells = <&imx8mq_uid>; |
295 | nvmem-cell-names = "soc_unique_id"; | |
748f908c LS |
296 | |
297 | bus@30000000 { /* AIPS1 */ | |
dc3efc6f | 298 | compatible = "fsl,aips-bus", "simple-bus"; |
921a6845 | 299 | reg = <0x30000000 0x400000>; |
748f908c LS |
300 | #address-cells = <1>; |
301 | #size-cells = <1>; | |
302 | ranges = <0x30000000 0x30000000 0x400000>; | |
303 | ||
fcb1991c LS |
304 | sai1: sai@30010000 { |
305 | #sound-dai-cells = <0>; | |
306 | compatible = "fsl,imx8mq-sai"; | |
307 | reg = <0x30010000 0x10000>; | |
308 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | |
309 | clocks = <&clk IMX8MQ_CLK_SAI1_IPG>, | |
310 | <&clk IMX8MQ_CLK_SAI1_ROOT>, | |
311 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | |
312 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | |
313 | dmas = <&sdma2 8 24 0>, <&sdma1 9 24 0>; | |
314 | dma-names = "rx", "tx"; | |
315 | status = "disabled"; | |
316 | }; | |
317 | ||
318 | sai6: sai@30030000 { | |
319 | #sound-dai-cells = <0>; | |
320 | compatible = "fsl,imx8mq-sai"; | |
321 | reg = <0x30030000 0x10000>; | |
322 | interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; | |
323 | clocks = <&clk IMX8MQ_CLK_SAI6_IPG>, | |
324 | <&clk IMX8MQ_CLK_SAI6_ROOT>, | |
325 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | |
326 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | |
327 | dmas = <&sdma2 4 24 0>, <&sdma2 5 24 0>; | |
328 | dma-names = "rx", "tx"; | |
329 | status = "disabled"; | |
330 | }; | |
331 | ||
332 | sai5: sai@30040000 { | |
333 | #sound-dai-cells = <0>; | |
334 | compatible = "fsl,imx8mq-sai"; | |
335 | reg = <0x30040000 0x10000>; | |
336 | interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; | |
337 | clocks = <&clk IMX8MQ_CLK_SAI5_IPG>, | |
338 | <&clk IMX8MQ_CLK_SAI5_ROOT>, | |
339 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | |
340 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | |
341 | dmas = <&sdma2 2 24 0>, <&sdma2 3 24 0>; | |
342 | dma-names = "rx", "tx"; | |
343 | status = "disabled"; | |
344 | }; | |
345 | ||
346 | sai4: sai@30050000 { | |
347 | #sound-dai-cells = <0>; | |
348 | compatible = "fsl,imx8mq-sai"; | |
349 | reg = <0x30050000 0x10000>; | |
350 | interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | |
351 | clocks = <&clk IMX8MQ_CLK_SAI4_IPG>, | |
352 | <&clk IMX8MQ_CLK_SAI4_ROOT>, | |
353 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | |
354 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | |
355 | dmas = <&sdma2 0 24 0>, <&sdma2 1 24 0>; | |
356 | dma-names = "rx", "tx"; | |
357 | status = "disabled"; | |
358 | }; | |
359 | ||
748f908c LS |
360 | gpio1: gpio@30200000 { |
361 | compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; | |
362 | reg = <0x30200000 0x10000>; | |
363 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, | |
364 | <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | |
580b064d | 365 | clocks = <&clk IMX8MQ_CLK_GPIO1_ROOT>; |
748f908c LS |
366 | gpio-controller; |
367 | #gpio-cells = <2>; | |
368 | interrupt-controller; | |
369 | #interrupt-cells = <2>; | |
26c2f55a | 370 | gpio-ranges = <&iomuxc 0 10 30>; |
748f908c LS |
371 | }; |
372 | ||
373 | gpio2: gpio@30210000 { | |
374 | compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; | |
375 | reg = <0x30210000 0x10000>; | |
376 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, | |
377 | <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | |
580b064d | 378 | clocks = <&clk IMX8MQ_CLK_GPIO2_ROOT>; |
748f908c LS |
379 | gpio-controller; |
380 | #gpio-cells = <2>; | |
381 | interrupt-controller; | |
382 | #interrupt-cells = <2>; | |
26c2f55a | 383 | gpio-ranges = <&iomuxc 0 40 21>; |
748f908c LS |
384 | }; |
385 | ||
386 | gpio3: gpio@30220000 { | |
387 | compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; | |
388 | reg = <0x30220000 0x10000>; | |
389 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | |
390 | <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | |
580b064d | 391 | clocks = <&clk IMX8MQ_CLK_GPIO3_ROOT>; |
748f908c LS |
392 | gpio-controller; |
393 | #gpio-cells = <2>; | |
394 | interrupt-controller; | |
395 | #interrupt-cells = <2>; | |
26c2f55a | 396 | gpio-ranges = <&iomuxc 0 61 26>; |
748f908c LS |
397 | }; |
398 | ||
399 | gpio4: gpio@30230000 { | |
400 | compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; | |
401 | reg = <0x30230000 0x10000>; | |
402 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, | |
403 | <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | |
580b064d | 404 | clocks = <&clk IMX8MQ_CLK_GPIO4_ROOT>; |
748f908c LS |
405 | gpio-controller; |
406 | #gpio-cells = <2>; | |
407 | interrupt-controller; | |
408 | #interrupt-cells = <2>; | |
26c2f55a | 409 | gpio-ranges = <&iomuxc 0 87 32>; |
748f908c LS |
410 | }; |
411 | ||
412 | gpio5: gpio@30240000 { | |
413 | compatible = "fsl,imx8mq-gpio", "fsl,imx35-gpio"; | |
414 | reg = <0x30240000 0x10000>; | |
415 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | |
416 | <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | |
580b064d | 417 | clocks = <&clk IMX8MQ_CLK_GPIO5_ROOT>; |
748f908c LS |
418 | gpio-controller; |
419 | #gpio-cells = <2>; | |
420 | interrupt-controller; | |
421 | #interrupt-cells = <2>; | |
26c2f55a | 422 | gpio-ranges = <&iomuxc 0 119 30>; |
748f908c LS |
423 | }; |
424 | ||
e464fd2b AAP |
425 | tmu: tmu@30260000 { |
426 | compatible = "fsl,imx8mq-tmu"; | |
427 | reg = <0x30260000 0x10000>; | |
1f2f98f2 | 428 | interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; |
150736b8 | 429 | clocks = <&clk IMX8MQ_CLK_TMU_ROOT>; |
e464fd2b AAP |
430 | little-endian; |
431 | fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>; | |
432 | fsl,tmu-calibration = <0x00000000 0x00000023 | |
433 | 0x00000001 0x00000029 | |
434 | 0x00000002 0x0000002f | |
435 | 0x00000003 0x00000035 | |
436 | 0x00000004 0x0000003d | |
437 | 0x00000005 0x00000043 | |
438 | 0x00000006 0x0000004b | |
439 | 0x00000007 0x00000051 | |
440 | 0x00000008 0x00000057 | |
441 | 0x00000009 0x0000005f | |
442 | 0x0000000a 0x00000067 | |
443 | 0x0000000b 0x0000006f | |
444 | ||
445 | 0x00010000 0x0000001b | |
446 | 0x00010001 0x00000023 | |
447 | 0x00010002 0x0000002b | |
448 | 0x00010003 0x00000033 | |
449 | 0x00010004 0x0000003b | |
450 | 0x00010005 0x00000043 | |
451 | 0x00010006 0x0000004b | |
452 | 0x00010007 0x00000055 | |
453 | 0x00010008 0x0000005d | |
454 | 0x00010009 0x00000067 | |
455 | 0x0001000a 0x00000070 | |
456 | ||
457 | 0x00020000 0x00000017 | |
458 | 0x00020001 0x00000023 | |
459 | 0x00020002 0x0000002d | |
460 | 0x00020003 0x00000037 | |
461 | 0x00020004 0x00000041 | |
462 | 0x00020005 0x0000004b | |
463 | 0x00020006 0x00000057 | |
464 | 0x00020007 0x00000063 | |
465 | 0x00020008 0x0000006f | |
466 | ||
467 | 0x00030000 0x00000015 | |
468 | 0x00030001 0x00000021 | |
469 | 0x00030002 0x0000002d | |
470 | 0x00030003 0x00000039 | |
471 | 0x00030004 0x00000045 | |
472 | 0x00030005 0x00000053 | |
473 | 0x00030006 0x0000005f | |
474 | 0x00030007 0x00000071>; | |
475 | #thermal-sensor-cells = <1>; | |
476 | }; | |
477 | ||
a2b91efd LS |
478 | wdog1: watchdog@30280000 { |
479 | compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; | |
480 | reg = <0x30280000 0x10000>; | |
481 | interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; | |
482 | clocks = <&clk IMX8MQ_CLK_WDOG1_ROOT>; | |
483 | status = "disabled"; | |
484 | }; | |
485 | ||
486 | wdog2: watchdog@30290000 { | |
487 | compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; | |
488 | reg = <0x30290000 0x10000>; | |
489 | interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; | |
490 | clocks = <&clk IMX8MQ_CLK_WDOG2_ROOT>; | |
491 | status = "disabled"; | |
492 | }; | |
493 | ||
494 | wdog3: watchdog@302a0000 { | |
495 | compatible = "fsl,imx8mq-wdt", "fsl,imx21-wdt"; | |
496 | reg = <0x302a0000 0x10000>; | |
497 | interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | |
498 | clocks = <&clk IMX8MQ_CLK_WDOG3_ROOT>; | |
499 | status = "disabled"; | |
500 | }; | |
501 | ||
1474d48b DB |
502 | sdma2: sdma@302c0000 { |
503 | compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; | |
504 | reg = <0x302c0000 0x10000>; | |
505 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | |
506 | clocks = <&clk IMX8MQ_CLK_SDMA2_ROOT>, | |
507 | <&clk IMX8MQ_CLK_SDMA2_ROOT>; | |
508 | clock-names = "ipg", "ahb"; | |
509 | #dma-cells = <3>; | |
510 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | |
511 | }; | |
512 | ||
1987ddfc GG |
513 | lcdif: lcd-controller@30320000 { |
514 | compatible = "fsl,imx8mq-lcdif", "fsl,imx28-lcdif"; | |
515 | reg = <0x30320000 0x10000>; | |
516 | interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; | |
517 | clocks = <&clk IMX8MQ_CLK_LCDIF_PIXEL>; | |
518 | clock-names = "pix"; | |
519 | assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>, | |
520 | <&clk IMX8MQ_VIDEO_PLL1_BYPASS>, | |
521 | <&clk IMX8MQ_CLK_LCDIF_PIXEL>, | |
522 | <&clk IMX8MQ_VIDEO_PLL1>; | |
523 | assigned-clock-parents = <&clk IMX8MQ_CLK_25M>, | |
524 | <&clk IMX8MQ_VIDEO_PLL1>, | |
525 | <&clk IMX8MQ_VIDEO_PLL1_OUT>; | |
526 | assigned-clock-rates = <0>, <0>, <0>, <594000000>; | |
527 | status = "disabled"; | |
d0081bd0 GG |
528 | |
529 | port@0 { | |
530 | lcdif_mipi_dsi: endpoint { | |
531 | remote-endpoint = <&mipi_dsi_lcdif_in>; | |
532 | }; | |
533 | }; | |
1987ddfc GG |
534 | }; |
535 | ||
c18696de | 536 | iomuxc: pinctrl@30330000 { |
748f908c LS |
537 | compatible = "fsl,imx8mq-iomuxc"; |
538 | reg = <0x30330000 0x10000>; | |
539 | }; | |
540 | ||
541 | iomuxc_gpr: syscon@30340000 { | |
21570180 GG |
542 | compatible = "fsl,imx8mq-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", |
543 | "syscon", "simple-mfd"; | |
748f908c | 544 | reg = <0x30340000 0x10000>; |
21570180 GG |
545 | |
546 | mux: mux-controller { | |
547 | compatible = "mmio-mux"; | |
548 | #mux-control-cells = <1>; | |
549 | mux-reg-masks = <0x34 0x00000004>; /* MIPI_MUX_SEL */ | |
550 | }; | |
748f908c LS |
551 | }; |
552 | ||
12fa1078 | 553 | ocotp: efuse@30350000 { |
9e113b2e CC |
554 | compatible = "fsl,imx8mq-ocotp", "syscon"; |
555 | reg = <0x30350000 0x10000>; | |
556 | clocks = <&clk IMX8MQ_CLK_OCOTP_ROOT>; | |
557 | #address-cells = <1>; | |
558 | #size-cells = <1>; | |
12629c5c | 559 | |
cbff2379 AG |
560 | imx8mq_uid: soc-uid@410 { |
561 | reg = <0x4 0x8>; | |
562 | }; | |
563 | ||
12629c5c LC |
564 | cpu_speed_grade: speed-grade@10 { |
565 | reg = <0x10 4>; | |
566 | }; | |
066438ae JZ |
567 | |
568 | fec_mac_address: mac-address@90 { | |
569 | reg = <0x90 6>; | |
570 | }; | |
9e113b2e CC |
571 | }; |
572 | ||
748f908c LS |
573 | anatop: syscon@30360000 { |
574 | compatible = "fsl,imx8mq-anatop", "syscon"; | |
575 | reg = <0x30360000 0x10000>; | |
576 | interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; | |
577 | }; | |
578 | ||
3ea95c31 AV |
579 | snvs: snvs@30370000 { |
580 | compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; | |
581 | reg = <0x30370000 0x10000>; | |
582 | ||
583 | snvs_rtc: snvs-rtc-lp{ | |
584 | compatible = "fsl,sec-v4.0-mon-rtc-lp"; | |
585 | regmap =<&snvs>; | |
586 | offset = <0x34>; | |
587 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, | |
588 | <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | |
881b54c7 AH |
589 | clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>; |
590 | clock-names = "snvs-rtc"; | |
3ea95c31 AV |
591 | }; |
592 | ||
a01194d7 AAP |
593 | snvs_pwrkey: snvs-powerkey { |
594 | compatible = "fsl,sec-v4.0-pwrkey"; | |
595 | regmap = <&snvs>; | |
596 | interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; | |
edd91ba6 AD |
597 | clocks = <&clk IMX8MQ_CLK_SNVS_ROOT>; |
598 | clock-names = "snvs-pwrkey"; | |
a01194d7 AAP |
599 | linux,keycode = <KEY_POWER>; |
600 | wakeup-source; | |
601 | status = "disabled"; | |
602 | }; | |
3ea95c31 AV |
603 | }; |
604 | ||
748f908c LS |
605 | clk: clock-controller@30380000 { |
606 | compatible = "fsl,imx8mq-ccm"; | |
607 | reg = <0x30380000 0x10000>; | |
608 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, | |
609 | <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; | |
610 | #clock-cells = <1>; | |
611 | clocks = <&ckil>, <&osc_25m>, <&osc_27m>, | |
612 | <&clk_ext1>, <&clk_ext2>, | |
613 | <&clk_ext3>, <&clk_ext4>; | |
614 | clock-names = "ckil", "osc_25m", "osc_27m", | |
615 | "clk_ext1", "clk_ext2", | |
616 | "clk_ext3", "clk_ext4"; | |
9e6337e6 PF |
617 | assigned-clocks = <&clk IMX8MQ_CLK_A53_SRC>, |
618 | <&clk IMX8MQ_CLK_A53_CORE>, | |
71fa01d3 SW |
619 | <&clk IMX8MQ_CLK_NOC>, |
620 | <&clk IMX8MQ_CLK_AUDIO_AHB>, | |
621 | <&clk IMX8MQ_AUDIO_PLL1_BYPASS>, | |
622 | <&clk IMX8MQ_AUDIO_PLL2_BYPASS>, | |
623 | <&clk IMX8MQ_AUDIO_PLL1>, | |
624 | <&clk IMX8MQ_AUDIO_PLL2>; | |
9e6337e6 | 625 | assigned-clock-rates = <0>, <0>, |
71fa01d3 SW |
626 | <800000000>, |
627 | <0>, | |
628 | <0>, | |
629 | <0>, | |
630 | <786432000>, | |
631 | <722534400>; | |
9e6337e6 | 632 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, |
71fa01d3 SW |
633 | <&clk IMX8MQ_ARM_PLL_OUT>, |
634 | <0>, | |
635 | <&clk IMX8MQ_SYS2_PLL_500M>, | |
636 | <&clk IMX8MQ_AUDIO_PLL1>, | |
637 | <&clk IMX8MQ_AUDIO_PLL2>; | |
748f908c | 638 | }; |
d3a2d72b | 639 | |
d62a250e AS |
640 | src: reset-controller@30390000 { |
641 | compatible = "fsl,imx8mq-src", "syscon"; | |
642 | reg = <0x30390000 0x10000>; | |
d0955f66 | 643 | interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; |
d62a250e AS |
644 | #reset-cells = <1>; |
645 | }; | |
646 | ||
fdbcc04d LS |
647 | gpc: gpc@303a0000 { |
648 | compatible = "fsl,imx8mq-gpc"; | |
649 | reg = <0x303a0000 0x10000>; | |
791619f6 | 650 | interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; |
c412123f LS |
651 | interrupt-parent = <&gic>; |
652 | interrupt-controller; | |
653 | #interrupt-cells = <3>; | |
fdbcc04d LS |
654 | |
655 | pgc { | |
656 | #address-cells = <1>; | |
657 | #size-cells = <0>; | |
658 | ||
659 | pgc_mipi: power-domain@0 { | |
660 | #power-domain-cells = <0>; | |
661 | reg = <IMX8M_POWER_DOMAIN_MIPI>; | |
662 | }; | |
663 | ||
de2a538b AS |
664 | /* |
665 | * As per comment in ATF source code: | |
666 | * | |
667 | * PCIE1 and PCIE2 share the | |
668 | * same reset signal, if we | |
669 | * power down PCIE2, PCIE1 | |
670 | * will be held in reset too. | |
671 | * | |
672 | * So instead of creating two | |
673 | * separate power domains for | |
674 | * PCIE1 and PCIE2 we create a | |
675 | * link between both and use | |
676 | * it as a shared PCIE power | |
677 | * domain. | |
678 | */ | |
679 | pgc_pcie: power-domain@1 { | |
fdbcc04d LS |
680 | #power-domain-cells = <0>; |
681 | reg = <IMX8M_POWER_DOMAIN_PCIE1>; | |
de2a538b | 682 | power-domains = <&pgc_pcie2>; |
fdbcc04d LS |
683 | }; |
684 | ||
685 | pgc_otg1: power-domain@2 { | |
686 | #power-domain-cells = <0>; | |
687 | reg = <IMX8M_POWER_DOMAIN_USB_OTG1>; | |
688 | }; | |
689 | ||
690 | pgc_otg2: power-domain@3 { | |
691 | #power-domain-cells = <0>; | |
692 | reg = <IMX8M_POWER_DOMAIN_USB_OTG2>; | |
693 | }; | |
694 | ||
695 | pgc_ddr1: power-domain@4 { | |
696 | #power-domain-cells = <0>; | |
697 | reg = <IMX8M_POWER_DOMAIN_DDR1>; | |
698 | }; | |
699 | ||
700 | pgc_gpu: power-domain@5 { | |
701 | #power-domain-cells = <0>; | |
702 | reg = <IMX8M_POWER_DOMAIN_GPU>; | |
703 | clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, | |
704 | <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, | |
705 | <&clk IMX8MQ_CLK_GPU_AXI>, | |
706 | <&clk IMX8MQ_CLK_GPU_AHB>; | |
707 | }; | |
708 | ||
709 | pgc_vpu: power-domain@6 { | |
710 | #power-domain-cells = <0>; | |
711 | reg = <IMX8M_POWER_DOMAIN_VPU>; | |
36cebead | 712 | clocks = <&clk IMX8MQ_CLK_VPU_DEC_ROOT>; |
fdbcc04d LS |
713 | }; |
714 | ||
715 | pgc_disp: power-domain@7 { | |
716 | #power-domain-cells = <0>; | |
717 | reg = <IMX8M_POWER_DOMAIN_DISP>; | |
718 | }; | |
719 | ||
720 | pgc_mipi_csi1: power-domain@8 { | |
721 | #power-domain-cells = <0>; | |
722 | reg = <IMX8M_POWER_DOMAIN_MIPI_CSI1>; | |
723 | }; | |
724 | ||
725 | pgc_mipi_csi2: power-domain@9 { | |
726 | #power-domain-cells = <0>; | |
727 | reg = <IMX8M_POWER_DOMAIN_MIPI_CSI2>; | |
728 | }; | |
729 | ||
730 | pgc_pcie2: power-domain@a { | |
731 | #power-domain-cells = <0>; | |
732 | reg = <IMX8M_POWER_DOMAIN_PCIE2>; | |
733 | }; | |
734 | }; | |
735 | }; | |
748f908c LS |
736 | }; |
737 | ||
738 | bus@30400000 { /* AIPS2 */ | |
dc3efc6f | 739 | compatible = "fsl,aips-bus", "simple-bus"; |
921a6845 | 740 | reg = <0x30400000 0x400000>; |
748f908c LS |
741 | #address-cells = <1>; |
742 | #size-cells = <1>; | |
743 | ranges = <0x30400000 0x30400000 0x400000>; | |
a0e046e6 GG |
744 | |
745 | pwm1: pwm@30660000 { | |
746 | compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; | |
747 | reg = <0x30660000 0x10000>; | |
748 | interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; | |
749 | clocks = <&clk IMX8MQ_CLK_PWM1_ROOT>, | |
750 | <&clk IMX8MQ_CLK_PWM1_ROOT>; | |
751 | clock-names = "ipg", "per"; | |
752 | #pwm-cells = <2>; | |
d3a2d72b BS |
753 | status = "disabled"; |
754 | }; | |
755 | ||
a0e046e6 GG |
756 | pwm2: pwm@30670000 { |
757 | compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; | |
758 | reg = <0x30670000 0x10000>; | |
759 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | |
760 | clocks = <&clk IMX8MQ_CLK_PWM2_ROOT>, | |
761 | <&clk IMX8MQ_CLK_PWM2_ROOT>; | |
762 | clock-names = "ipg", "per"; | |
763 | #pwm-cells = <2>; | |
d3a2d72b BS |
764 | status = "disabled"; |
765 | }; | |
766 | ||
a0e046e6 GG |
767 | pwm3: pwm@30680000 { |
768 | compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; | |
769 | reg = <0x30680000 0x10000>; | |
770 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | |
771 | clocks = <&clk IMX8MQ_CLK_PWM3_ROOT>, | |
772 | <&clk IMX8MQ_CLK_PWM3_ROOT>; | |
773 | clock-names = "ipg", "per"; | |
774 | #pwm-cells = <2>; | |
d3a2d72b BS |
775 | status = "disabled"; |
776 | }; | |
748f908c | 777 | |
a0e046e6 GG |
778 | pwm4: pwm@30690000 { |
779 | compatible = "fsl,imx8mq-pwm", "fsl,imx27-pwm"; | |
780 | reg = <0x30690000 0x10000>; | |
781 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | |
782 | clocks = <&clk IMX8MQ_CLK_PWM4_ROOT>, | |
783 | <&clk IMX8MQ_CLK_PWM4_ROOT>; | |
784 | clock-names = "ipg", "per"; | |
785 | #pwm-cells = <2>; | |
786 | status = "disabled"; | |
787 | }; | |
24e8a5db AH |
788 | |
789 | system_counter: timer@306a0000 { | |
790 | compatible = "nxp,sysctr-timer"; | |
791 | reg = <0x306a0000 0x20000>; | |
792 | interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; | |
793 | clocks = <&osc_25m>; | |
794 | clock-names = "per"; | |
795 | }; | |
748f908c LS |
796 | }; |
797 | ||
798 | bus@30800000 { /* AIPS3 */ | |
dc3efc6f | 799 | compatible = "fsl,aips-bus", "simple-bus"; |
921a6845 | 800 | reg = <0x30800000 0x400000>; |
748f908c LS |
801 | #address-cells = <1>; |
802 | #size-cells = <1>; | |
39f1622b CC |
803 | ranges = <0x30800000 0x30800000 0x400000>, |
804 | <0x08000000 0x08000000 0x10000000>; | |
748f908c | 805 | |
08a1a2e2 SW |
806 | spdif1: spdif@30810000 { |
807 | compatible = "fsl,imx35-spdif"; | |
808 | reg = <0x30810000 0x10000>; | |
809 | interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; | |
810 | clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ | |
811 | <&clk IMX8MQ_CLK_25M>, /* rxtx0 */ | |
812 | <&clk IMX8MQ_CLK_SPDIF1>, /* rxtx1 */ | |
813 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ | |
814 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ | |
815 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ | |
816 | <&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ | |
817 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ | |
818 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ | |
819 | <&clk IMX8MQ_CLK_DUMMY>; /* spba */ | |
820 | clock-names = "core", "rxtx0", | |
821 | "rxtx1", "rxtx2", | |
822 | "rxtx3", "rxtx4", | |
823 | "rxtx5", "rxtx6", | |
824 | "rxtx7", "spba"; | |
825 | dmas = <&sdma1 8 18 0>, <&sdma1 9 18 0>; | |
826 | dma-names = "rx", "tx"; | |
827 | status = "disabled"; | |
828 | }; | |
829 | ||
85761f45 FE |
830 | ecspi1: spi@30820000 { |
831 | #address-cells = <1>; | |
832 | #size-cells = <0>; | |
833 | compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; | |
834 | reg = <0x30820000 0x10000>; | |
835 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | |
836 | clocks = <&clk IMX8MQ_CLK_ECSPI1_ROOT>, | |
837 | <&clk IMX8MQ_CLK_ECSPI1_ROOT>; | |
838 | clock-names = "ipg", "per"; | |
8b6b1754 FE |
839 | dmas = <&sdma1 0 7 1>, <&sdma1 1 7 2>; |
840 | dma-names = "rx", "tx"; | |
85761f45 FE |
841 | status = "disabled"; |
842 | }; | |
843 | ||
844 | ecspi2: spi@30830000 { | |
845 | #address-cells = <1>; | |
846 | #size-cells = <0>; | |
847 | compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; | |
848 | reg = <0x30830000 0x10000>; | |
849 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | |
850 | clocks = <&clk IMX8MQ_CLK_ECSPI2_ROOT>, | |
851 | <&clk IMX8MQ_CLK_ECSPI2_ROOT>; | |
852 | clock-names = "ipg", "per"; | |
8b6b1754 FE |
853 | dmas = <&sdma1 2 7 1>, <&sdma1 3 7 2>; |
854 | dma-names = "rx", "tx"; | |
85761f45 FE |
855 | status = "disabled"; |
856 | }; | |
857 | ||
858 | ecspi3: spi@30840000 { | |
859 | #address-cells = <1>; | |
860 | #size-cells = <0>; | |
861 | compatible = "fsl,imx8mq-ecspi", "fsl,imx51-ecspi"; | |
862 | reg = <0x30840000 0x10000>; | |
863 | interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | |
864 | clocks = <&clk IMX8MQ_CLK_ECSPI3_ROOT>, | |
865 | <&clk IMX8MQ_CLK_ECSPI3_ROOT>; | |
866 | clock-names = "ipg", "per"; | |
8b6b1754 FE |
867 | dmas = <&sdma1 4 7 1>, <&sdma1 5 7 2>; |
868 | dma-names = "rx", "tx"; | |
85761f45 FE |
869 | status = "disabled"; |
870 | }; | |
748f908c LS |
871 | |
872 | uart1: serial@30860000 { | |
873 | compatible = "fsl,imx8mq-uart", | |
874 | "fsl,imx6q-uart"; | |
875 | reg = <0x30860000 0x10000>; | |
876 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | |
877 | clocks = <&clk IMX8MQ_CLK_UART1_ROOT>, | |
878 | <&clk IMX8MQ_CLK_UART1_ROOT>; | |
879 | clock-names = "ipg", "per"; | |
880 | status = "disabled"; | |
881 | }; | |
882 | ||
883 | uart3: serial@30880000 { | |
884 | compatible = "fsl,imx8mq-uart", | |
885 | "fsl,imx6q-uart"; | |
886 | reg = <0x30880000 0x10000>; | |
887 | interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | |
888 | clocks = <&clk IMX8MQ_CLK_UART3_ROOT>, | |
889 | <&clk IMX8MQ_CLK_UART3_ROOT>; | |
890 | clock-names = "ipg", "per"; | |
891 | status = "disabled"; | |
892 | }; | |
893 | ||
894 | uart2: serial@30890000 { | |
895 | compatible = "fsl,imx8mq-uart", | |
896 | "fsl,imx6q-uart"; | |
897 | reg = <0x30890000 0x10000>; | |
898 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | |
899 | clocks = <&clk IMX8MQ_CLK_UART2_ROOT>, | |
900 | <&clk IMX8MQ_CLK_UART2_ROOT>; | |
901 | clock-names = "ipg", "per"; | |
902 | status = "disabled"; | |
903 | }; | |
904 | ||
08a1a2e2 SW |
905 | spdif2: spdif@308a0000 { |
906 | compatible = "fsl,imx35-spdif"; | |
907 | reg = <0x308a0000 0x10000>; | |
908 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | |
909 | clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, /* core */ | |
910 | <&clk IMX8MQ_CLK_25M>, /* rxtx0 */ | |
911 | <&clk IMX8MQ_CLK_SPDIF2>, /* rxtx1 */ | |
912 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx2 */ | |
913 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx3 */ | |
914 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx4 */ | |
915 | <&clk IMX8MQ_CLK_IPG_ROOT>, /* rxtx5 */ | |
916 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx6 */ | |
917 | <&clk IMX8MQ_CLK_DUMMY>, /* rxtx7 */ | |
918 | <&clk IMX8MQ_CLK_DUMMY>; /* spba */ | |
919 | clock-names = "core", "rxtx0", | |
920 | "rxtx1", "rxtx2", | |
921 | "rxtx3", "rxtx4", | |
922 | "rxtx5", "rxtx6", | |
923 | "rxtx7", "spba"; | |
924 | dmas = <&sdma1 16 18 0>, <&sdma1 17 18 0>; | |
925 | dma-names = "rx", "tx"; | |
926 | status = "disabled"; | |
927 | }; | |
928 | ||
8c61538d DB |
929 | sai2: sai@308b0000 { |
930 | #sound-dai-cells = <0>; | |
8d014847 | 931 | compatible = "fsl,imx8mq-sai"; |
8c61538d DB |
932 | reg = <0x308b0000 0x10000>; |
933 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | |
934 | clocks = <&clk IMX8MQ_CLK_SAI2_IPG>, | |
935 | <&clk IMX8MQ_CLK_SAI2_ROOT>, | |
936 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | |
937 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | |
938 | dmas = <&sdma1 10 24 0>, <&sdma1 11 24 0>; | |
939 | dma-names = "rx", "tx"; | |
940 | status = "disabled"; | |
941 | }; | |
942 | ||
fcb1991c LS |
943 | sai3: sai@308c0000 { |
944 | #sound-dai-cells = <0>; | |
945 | compatible = "fsl,imx8mq-sai"; | |
946 | reg = <0x308c0000 0x10000>; | |
947 | interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; | |
948 | clocks = <&clk IMX8MQ_CLK_SAI3_IPG>, | |
949 | <&clk IMX8MQ_CLK_SAI3_ROOT>, | |
950 | <&clk IMX8MQ_CLK_DUMMY>, <&clk IMX8MQ_CLK_DUMMY>; | |
951 | clock-names = "bus", "mclk1", "mclk2", "mclk3"; | |
952 | dmas = <&sdma1 12 24 0>, <&sdma1 13 24 0>; | |
953 | dma-names = "rx", "tx"; | |
954 | status = "disabled"; | |
955 | }; | |
956 | ||
007b3cf0 AS |
957 | crypto: crypto@30900000 { |
958 | compatible = "fsl,sec-v4.0"; | |
959 | #address-cells = <1>; | |
960 | #size-cells = <1>; | |
961 | reg = <0x30900000 0x40000>; | |
962 | ranges = <0 0x30900000 0x40000>; | |
963 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | |
964 | clocks = <&clk IMX8MQ_CLK_AHB>, | |
965 | <&clk IMX8MQ_CLK_IPG_ROOT>; | |
966 | clock-names = "aclk", "ipg"; | |
967 | ||
968 | sec_jr0: jr@1000 { | |
969 | compatible = "fsl,sec-v4.0-job-ring"; | |
970 | reg = <0x1000 0x1000>; | |
971 | interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | |
972 | }; | |
973 | ||
974 | sec_jr1: jr@2000 { | |
975 | compatible = "fsl,sec-v4.0-job-ring"; | |
976 | reg = <0x2000 0x1000>; | |
977 | interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; | |
978 | }; | |
979 | ||
980 | sec_jr2: jr@3000 { | |
981 | compatible = "fsl,sec-v4.0-job-ring"; | |
982 | reg = <0x3000 0x1000>; | |
983 | interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; | |
984 | }; | |
985 | }; | |
986 | ||
d0081bd0 GG |
987 | mipi_dsi: mipi-dsi@30a00000 { |
988 | compatible = "fsl,imx8mq-nwl-dsi"; | |
989 | reg = <0x30a00000 0x300>; | |
990 | clocks = <&clk IMX8MQ_CLK_DSI_CORE>, | |
991 | <&clk IMX8MQ_CLK_DSI_AHB>, | |
992 | <&clk IMX8MQ_CLK_DSI_IPG_DIV>, | |
993 | <&clk IMX8MQ_CLK_DSI_PHY_REF>, | |
994 | <&clk IMX8MQ_CLK_LCDIF_PIXEL>; | |
995 | clock-names = "core", "rx_esc", "tx_esc", "phy_ref", "lcdif"; | |
996 | assigned-clocks = <&clk IMX8MQ_CLK_DSI_AHB>, | |
997 | <&clk IMX8MQ_CLK_DSI_CORE>, | |
998 | <&clk IMX8MQ_CLK_DSI_IPG_DIV>; | |
999 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>, | |
1000 | <&clk IMX8MQ_SYS1_PLL_266M>; | |
1001 | assigned-clock-rates = <80000000>, <266000000>, <20000000>; | |
1002 | interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | |
1003 | mux-controls = <&mux 0>; | |
1004 | power-domains = <&pgc_mipi>; | |
1005 | phys = <&dphy>; | |
1006 | phy-names = "dphy"; | |
1007 | resets = <&src IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N>, | |
1008 | <&src IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N>, | |
1009 | <&src IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N>, | |
1010 | <&src IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N>; | |
1011 | reset-names = "byte", "dpi", "esc", "pclk"; | |
1012 | status = "disabled"; | |
1013 | ||
1014 | ports { | |
1015 | #address-cells = <1>; | |
1016 | #size-cells = <0>; | |
1017 | ||
1018 | port@0 { | |
1019 | reg = <0>; | |
1020 | #address-cells = <1>; | |
1021 | #size-cells = <0>; | |
1022 | mipi_dsi_lcdif_in: endpoint@0 { | |
1023 | reg = <0>; | |
1024 | remote-endpoint = <&lcdif_mipi_dsi>; | |
1025 | }; | |
1026 | }; | |
1027 | }; | |
1028 | }; | |
1029 | ||
a99b26b1 GG |
1030 | dphy: dphy@30a00300 { |
1031 | compatible = "fsl,imx8mq-mipi-dphy"; | |
1032 | reg = <0x30a00300 0x100>; | |
1033 | clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>; | |
1034 | clock-names = "phy_ref"; | |
62270eeb GG |
1035 | assigned-clocks = <&clk IMX8MQ_VIDEO_PLL1_REF_SEL>, |
1036 | <&clk IMX8MQ_VIDEO_PLL1_BYPASS>, | |
1037 | <&clk IMX8MQ_CLK_DSI_PHY_REF>, | |
1038 | <&clk IMX8MQ_VIDEO_PLL1>; | |
1039 | assigned-clock-parents = <&clk IMX8MQ_CLK_25M>, | |
1040 | <&clk IMX8MQ_VIDEO_PLL1>, | |
1041 | <&clk IMX8MQ_VIDEO_PLL1_OUT>; | |
1042 | assigned-clock-rates = <0>, <0>, <24000000>, <594000000>; | |
a99b26b1 GG |
1043 | #phy-cells = <0>; |
1044 | power-domains = <&pgc_mipi>; | |
1045 | status = "disabled"; | |
1046 | }; | |
1047 | ||
748f908c LS |
1048 | i2c1: i2c@30a20000 { |
1049 | compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; | |
1050 | reg = <0x30a20000 0x10000>; | |
1051 | interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; | |
1052 | clocks = <&clk IMX8MQ_CLK_I2C1_ROOT>; | |
1053 | #address-cells = <1>; | |
1054 | #size-cells = <0>; | |
1055 | status = "disabled"; | |
1056 | }; | |
1057 | ||
1058 | i2c2: i2c@30a30000 { | |
1059 | compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; | |
1060 | reg = <0x30a30000 0x10000>; | |
1061 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | |
1062 | clocks = <&clk IMX8MQ_CLK_I2C2_ROOT>; | |
1063 | #address-cells = <1>; | |
1064 | #size-cells = <0>; | |
1065 | status = "disabled"; | |
1066 | }; | |
1067 | ||
1068 | i2c3: i2c@30a40000 { | |
1069 | compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; | |
1070 | reg = <0x30a40000 0x10000>; | |
1071 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | |
1072 | clocks = <&clk IMX8MQ_CLK_I2C3_ROOT>; | |
1073 | #address-cells = <1>; | |
1074 | #size-cells = <0>; | |
1075 | status = "disabled"; | |
1076 | }; | |
1077 | ||
1078 | i2c4: i2c@30a50000 { | |
1079 | compatible = "fsl,imx8mq-i2c", "fsl,imx21-i2c"; | |
1080 | reg = <0x30a50000 0x10000>; | |
1081 | interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; | |
1082 | clocks = <&clk IMX8MQ_CLK_I2C4_ROOT>; | |
1083 | #address-cells = <1>; | |
1084 | #size-cells = <0>; | |
1085 | status = "disabled"; | |
1086 | }; | |
1087 | ||
1088 | uart4: serial@30a60000 { | |
1089 | compatible = "fsl,imx8mq-uart", | |
1090 | "fsl,imx6q-uart"; | |
1091 | reg = <0x30a60000 0x10000>; | |
1092 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; | |
1093 | clocks = <&clk IMX8MQ_CLK_UART4_ROOT>, | |
1094 | <&clk IMX8MQ_CLK_UART4_ROOT>; | |
1095 | clock-names = "ipg", "per"; | |
1096 | status = "disabled"; | |
1097 | }; | |
1098 | ||
bcadd5f6 MK |
1099 | mipi_csi1: csi@30a70000 { |
1100 | compatible = "fsl,imx8mq-mipi-csi2"; | |
1101 | reg = <0x30a70000 0x1000>; | |
1102 | clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, | |
1103 | <&clk IMX8MQ_CLK_CSI1_ESC>, | |
1104 | <&clk IMX8MQ_CLK_CSI1_PHY_REF>; | |
1105 | clock-names = "core", "esc", "ui"; | |
1106 | assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE>, | |
1107 | <&clk IMX8MQ_CLK_CSI1_PHY_REF>, | |
1108 | <&clk IMX8MQ_CLK_CSI1_ESC>; | |
1109 | assigned-clock-rates = <266000000>, <333000000>, <66000000>; | |
1110 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, | |
1111 | <&clk IMX8MQ_SYS2_PLL_1000M>, | |
1112 | <&clk IMX8MQ_SYS1_PLL_800M>; | |
1113 | power-domains = <&pgc_mipi_csi1>; | |
1114 | resets = <&src IMX8MQ_RESET_MIPI_CSI1_CORE_RESET>, | |
1115 | <&src IMX8MQ_RESET_MIPI_CSI1_PHY_REF_RESET>, | |
1116 | <&src IMX8MQ_RESET_MIPI_CSI1_ESC_RESET>; | |
1117 | fsl,mipi-phy-gpr = <&iomuxc_gpr 0x88>; | |
1118 | interconnects = <&noc IMX8MQ_ICM_CSI1 &noc IMX8MQ_ICS_DRAM>; | |
1119 | interconnect-names = "dram"; | |
1120 | status = "disabled"; | |
1121 | ||
1122 | ports { | |
1123 | #address-cells = <1>; | |
1124 | #size-cells = <0>; | |
1125 | ||
1126 | port@0 { | |
1127 | reg = <0>; | |
1128 | ||
1129 | csi1_mipi_ep: endpoint { | |
1130 | remote-endpoint = <&csi1_ep>; | |
1131 | }; | |
1132 | }; | |
1133 | }; | |
1134 | }; | |
1135 | ||
1136 | csi1: csi@30a90000 { | |
1137 | compatible = "fsl,imx8mq-csi", "fsl,imx7-csi"; | |
1138 | reg = <0x30a90000 0x10000>; | |
1139 | interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; | |
1140 | clocks = <&clk IMX8MQ_CLK_CSI1_ROOT>; | |
1141 | clock-names = "mclk"; | |
1142 | status = "disabled"; | |
1143 | ||
1144 | port { | |
1145 | csi1_ep: endpoint { | |
1146 | remote-endpoint = <&csi1_mipi_ep>; | |
1147 | }; | |
1148 | }; | |
1149 | }; | |
1150 | ||
1151 | mipi_csi2: csi@30b60000 { | |
1152 | compatible = "fsl,imx8mq-mipi-csi2"; | |
1153 | reg = <0x30b60000 0x1000>; | |
1154 | clocks = <&clk IMX8MQ_CLK_CSI2_CORE>, | |
1155 | <&clk IMX8MQ_CLK_CSI2_ESC>, | |
1156 | <&clk IMX8MQ_CLK_CSI2_PHY_REF>; | |
1157 | clock-names = "core", "esc", "ui"; | |
1158 | assigned-clocks = <&clk IMX8MQ_CLK_CSI2_CORE>, | |
1159 | <&clk IMX8MQ_CLK_CSI2_PHY_REF>, | |
1160 | <&clk IMX8MQ_CLK_CSI2_ESC>; | |
1161 | assigned-clock-rates = <266000000>, <333000000>, <66000000>; | |
1162 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, | |
1163 | <&clk IMX8MQ_SYS2_PLL_1000M>, | |
1164 | <&clk IMX8MQ_SYS1_PLL_800M>; | |
1165 | power-domains = <&pgc_mipi_csi2>; | |
1166 | resets = <&src IMX8MQ_RESET_MIPI_CSI2_CORE_RESET>, | |
1167 | <&src IMX8MQ_RESET_MIPI_CSI2_PHY_REF_RESET>, | |
1168 | <&src IMX8MQ_RESET_MIPI_CSI2_ESC_RESET>; | |
1169 | fsl,mipi-phy-gpr = <&iomuxc_gpr 0xa4>; | |
1170 | interconnects = <&noc IMX8MQ_ICM_CSI2 &noc IMX8MQ_ICS_DRAM>; | |
1171 | interconnect-names = "dram"; | |
1172 | status = "disabled"; | |
1173 | ||
1174 | ports { | |
1175 | #address-cells = <1>; | |
1176 | #size-cells = <0>; | |
1177 | ||
1178 | port@0 { | |
1179 | reg = <0>; | |
1180 | ||
1181 | csi2_mipi_ep: endpoint { | |
1182 | remote-endpoint = <&csi2_ep>; | |
1183 | }; | |
1184 | }; | |
1185 | }; | |
1186 | }; | |
1187 | ||
1188 | csi2: csi@30b80000 { | |
1189 | compatible = "fsl,imx8mq-csi", "fsl,imx7-csi"; | |
1190 | reg = <0x30b80000 0x10000>; | |
1191 | interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; | |
1192 | clocks = <&clk IMX8MQ_CLK_CSI2_ROOT>; | |
1193 | clock-names = "mclk"; | |
1194 | status = "disabled"; | |
1195 | ||
1196 | port { | |
1197 | csi2_ep: endpoint { | |
1198 | remote-endpoint = <&csi2_mipi_ep>; | |
1199 | }; | |
1200 | }; | |
1201 | }; | |
1202 | ||
bbfc59be PF |
1203 | mu: mailbox@30aa0000 { |
1204 | compatible = "fsl,imx8mq-mu", "fsl,imx6sx-mu"; | |
1205 | reg = <0x30aa0000 0x10000>; | |
1206 | interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; | |
1207 | clocks = <&clk IMX8MQ_CLK_MU_ROOT>; | |
1208 | #mbox-cells = <2>; | |
1209 | }; | |
1210 | ||
748f908c LS |
1211 | usdhc1: mmc@30b40000 { |
1212 | compatible = "fsl,imx8mq-usdhc", | |
1213 | "fsl,imx7d-usdhc"; | |
1214 | reg = <0x30b40000 0x10000>; | |
1215 | interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; | |
b0759297 | 1216 | clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, |
748f908c LS |
1217 | <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, |
1218 | <&clk IMX8MQ_CLK_USDHC1_ROOT>; | |
1219 | clock-names = "ipg", "ahb", "per"; | |
1220 | fsl,tuning-start-tap = <20>; | |
1221 | fsl,tuning-step = <2>; | |
1222 | bus-width = <4>; | |
1223 | status = "disabled"; | |
1224 | }; | |
1225 | ||
1226 | usdhc2: mmc@30b50000 { | |
1227 | compatible = "fsl,imx8mq-usdhc", | |
1228 | "fsl,imx7d-usdhc"; | |
1229 | reg = <0x30b50000 0x10000>; | |
1230 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; | |
b0759297 | 1231 | clocks = <&clk IMX8MQ_CLK_IPG_ROOT>, |
748f908c LS |
1232 | <&clk IMX8MQ_CLK_NAND_USDHC_BUS>, |
1233 | <&clk IMX8MQ_CLK_USDHC2_ROOT>; | |
1234 | clock-names = "ipg", "ahb", "per"; | |
1235 | fsl,tuning-start-tap = <20>; | |
1236 | fsl,tuning-step = <2>; | |
1237 | bus-width = <4>; | |
1238 | status = "disabled"; | |
1239 | }; | |
1240 | ||
39f1622b CC |
1241 | qspi0: spi@30bb0000 { |
1242 | #address-cells = <1>; | |
1243 | #size-cells = <0>; | |
1244 | compatible = "fsl,imx8mq-qspi", "fsl,imx7d-qspi"; | |
1245 | reg = <0x30bb0000 0x10000>, | |
1246 | <0x08000000 0x10000000>; | |
1247 | reg-names = "QuadSPI", "QuadSPI-memory"; | |
1248 | interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; | |
1249 | clocks = <&clk IMX8MQ_CLK_QSPI_ROOT>, | |
1250 | <&clk IMX8MQ_CLK_QSPI_ROOT>; | |
1251 | clock-names = "qspi_en", "qspi"; | |
1252 | status = "disabled"; | |
1253 | }; | |
1254 | ||
1474d48b | 1255 | sdma1: sdma@30bd0000 { |
b6c846b9 | 1256 | compatible = "fsl,imx8mq-sdma","fsl,imx7d-sdma"; |
1474d48b DB |
1257 | reg = <0x30bd0000 0x10000>; |
1258 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | |
1259 | clocks = <&clk IMX8MQ_CLK_SDMA1_ROOT>, | |
7240d7d4 | 1260 | <&clk IMX8MQ_CLK_AHB>; |
1474d48b DB |
1261 | clock-names = "ipg", "ahb"; |
1262 | #dma-cells = <3>; | |
1263 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin"; | |
1264 | }; | |
1265 | ||
748f908c LS |
1266 | fec1: ethernet@30be0000 { |
1267 | compatible = "fsl,imx8mq-fec", "fsl,imx6sx-fec"; | |
1268 | reg = <0x30be0000 0x10000>; | |
1269 | interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, | |
1270 | <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, | |
d3762a47 FE |
1271 | <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, |
1272 | <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | |
748f908c LS |
1273 | clocks = <&clk IMX8MQ_CLK_ENET1_ROOT>, |
1274 | <&clk IMX8MQ_CLK_ENET1_ROOT>, | |
1275 | <&clk IMX8MQ_CLK_ENET_TIMER>, | |
1276 | <&clk IMX8MQ_CLK_ENET_REF>, | |
1277 | <&clk IMX8MQ_CLK_ENET_PHY_REF>; | |
1278 | clock-names = "ipg", "ahb", "ptp", | |
1279 | "enet_clk_ref", "enet_out"; | |
6c17f2d6 JZ |
1280 | assigned-clocks = <&clk IMX8MQ_CLK_ENET_AXI>, |
1281 | <&clk IMX8MQ_CLK_ENET_TIMER>, | |
1282 | <&clk IMX8MQ_CLK_ENET_REF>, | |
1283 | <&clk IMX8MQ_CLK_ENET_PHY_REF>; | |
1284 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_266M>, | |
1285 | <&clk IMX8MQ_SYS2_PLL_100M>, | |
1286 | <&clk IMX8MQ_SYS2_PLL_125M>, | |
1287 | <&clk IMX8MQ_SYS2_PLL_50M>; | |
1288 | assigned-clock-rates = <0>, <100000000>, <125000000>, <0>; | |
748f908c LS |
1289 | fsl,num-tx-queues = <3>; |
1290 | fsl,num-rx-queues = <3>; | |
066438ae JZ |
1291 | nvmem-cells = <&fec_mac_address>; |
1292 | nvmem-cell-names = "mac-address"; | |
1293 | nvmem_macaddr_swap; | |
afe99354 | 1294 | fsl,stop-mode = <&iomuxc_gpr 0x10 3>; |
748f908c LS |
1295 | status = "disabled"; |
1296 | }; | |
1297 | }; | |
1298 | ||
f18e6d57 LC |
1299 | noc: interconnect@32700000 { |
1300 | compatible = "fsl,imx8mq-noc", "fsl,imx8m-noc"; | |
1301 | reg = <0x32700000 0x100000>; | |
1302 | clocks = <&clk IMX8MQ_CLK_NOC>; | |
1303 | fsl,ddrc = <&ddrc>; | |
20cf8d98 | 1304 | #interconnect-cells = <1>; |
f18e6d57 LC |
1305 | operating-points-v2 = <&noc_opp_table>; |
1306 | ||
1307 | noc_opp_table: opp-table { | |
1308 | compatible = "operating-points-v2"; | |
1309 | ||
1310 | opp-133M { | |
1311 | opp-hz = /bits/ 64 <133333333>; | |
1312 | }; | |
1313 | ||
1314 | opp-400M { | |
1315 | opp-hz = /bits/ 64 <400000000>; | |
1316 | }; | |
1317 | ||
1318 | opp-800M { | |
1319 | opp-hz = /bits/ 64 <800000000>; | |
1320 | }; | |
1321 | }; | |
1322 | }; | |
1323 | ||
4af3cfe4 | 1324 | bus@32c00000 { /* AIPS4 */ |
dc3efc6f | 1325 | compatible = "fsl,aips-bus", "simple-bus"; |
921a6845 | 1326 | reg = <0x32c00000 0x400000>; |
4af3cfe4 GG |
1327 | #address-cells = <1>; |
1328 | #size-cells = <1>; | |
1329 | ranges = <0x32c00000 0x32c00000 0x400000>; | |
1330 | ||
1331 | irqsteer: interrupt-controller@32e2d000 { | |
1332 | compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer"; | |
1333 | reg = <0x32e2d000 0x1000>; | |
1334 | interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; | |
1335 | clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>; | |
1336 | clock-names = "ipg"; | |
1337 | fsl,channel = <0>; | |
1338 | fsl,num-irqs = <64>; | |
1339 | interrupt-controller; | |
1340 | #interrupt-cells = <1>; | |
1341 | }; | |
1342 | }; | |
1343 | ||
45d2c84e LS |
1344 | gpu: gpu@38000000 { |
1345 | compatible = "vivante,gc"; | |
1346 | reg = <0x38000000 0x40000>; | |
1347 | interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | |
1348 | clocks = <&clk IMX8MQ_CLK_GPU_ROOT>, | |
1349 | <&clk IMX8MQ_CLK_GPU_SHADER_DIV>, | |
1350 | <&clk IMX8MQ_CLK_GPU_AXI>, | |
1351 | <&clk IMX8MQ_CLK_GPU_AHB>; | |
1352 | clock-names = "core", "shader", "bus", "reg"; | |
9404f2ea | 1353 | #cooling-cells = <2>; |
45d2c84e LS |
1354 | assigned-clocks = <&clk IMX8MQ_CLK_GPU_CORE_SRC>, |
1355 | <&clk IMX8MQ_CLK_GPU_SHADER_SRC>, | |
1356 | <&clk IMX8MQ_CLK_GPU_AXI>, | |
ade5a57e LS |
1357 | <&clk IMX8MQ_CLK_GPU_AHB>, |
1358 | <&clk IMX8MQ_GPU_PLL_BYPASS>; | |
45d2c84e LS |
1359 | assigned-clock-parents = <&clk IMX8MQ_GPU_PLL_OUT>, |
1360 | <&clk IMX8MQ_GPU_PLL_OUT>, | |
1361 | <&clk IMX8MQ_GPU_PLL_OUT>, | |
ade5a57e LS |
1362 | <&clk IMX8MQ_GPU_PLL_OUT>, |
1363 | <&clk IMX8MQ_GPU_PLL>; | |
45d2c84e | 1364 | assigned-clock-rates = <800000000>, <800000000>, |
ade5a57e | 1365 | <800000000>, <800000000>, <0>; |
45d2c84e LS |
1366 | power-domains = <&pgc_gpu>; |
1367 | }; | |
1368 | ||
ad37549c LS |
1369 | usb_dwc3_0: usb@38100000 { |
1370 | compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; | |
1371 | reg = <0x38100000 0x10000>; | |
74bd5951 | 1372 | clocks = <&clk IMX8MQ_CLK_USB1_CTRL_ROOT>, |
ad37549c | 1373 | <&clk IMX8MQ_CLK_USB_CORE_REF>, |
74bd5951 | 1374 | <&clk IMX8MQ_CLK_32K>; |
ad37549c LS |
1375 | clock-names = "bus_early", "ref", "suspend"; |
1376 | assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>, | |
1377 | <&clk IMX8MQ_CLK_USB_CORE_REF>; | |
1378 | assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>, | |
1379 | <&clk IMX8MQ_SYS1_PLL_100M>; | |
1380 | assigned-clock-rates = <500000000>, <100000000>; | |
1381 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; | |
1382 | phys = <&usb3_phy0>, <&usb3_phy0>; | |
1383 | phy-names = "usb2-phy", "usb3-phy"; | |
1384 | power-domains = <&pgc_otg1>; | |
1385 | usb3-resume-missing-cas; | |
1386 | status = "disabled"; | |
1387 | }; | |
1388 | ||
1389 | usb3_phy0: usb-phy@381f0040 { | |
1390 | compatible = "fsl,imx8mq-usb-phy"; | |
1391 | reg = <0x381f0040 0x40>; | |
1392 | clocks = <&clk IMX8MQ_CLK_USB1_PHY_ROOT>; | |
1393 | clock-names = "phy"; | |
1394 | assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>; | |
1395 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>; | |
1396 | assigned-clock-rates = <100000000>; | |
1397 | #phy-cells = <0>; | |
1398 | status = "disabled"; | |
1399 | }; | |
1400 | ||
1401 | usb_dwc3_1: usb@38200000 { | |
1402 | compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; | |
1403 | reg = <0x38200000 0x10000>; | |
74bd5951 | 1404 | clocks = <&clk IMX8MQ_CLK_USB2_CTRL_ROOT>, |
ad37549c | 1405 | <&clk IMX8MQ_CLK_USB_CORE_REF>, |
74bd5951 | 1406 | <&clk IMX8MQ_CLK_32K>; |
ad37549c LS |
1407 | clock-names = "bus_early", "ref", "suspend"; |
1408 | assigned-clocks = <&clk IMX8MQ_CLK_USB_BUS>, | |
1409 | <&clk IMX8MQ_CLK_USB_CORE_REF>; | |
1410 | assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_500M>, | |
1411 | <&clk IMX8MQ_SYS1_PLL_100M>; | |
1412 | assigned-clock-rates = <500000000>, <100000000>; | |
1413 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | |
1414 | phys = <&usb3_phy1>, <&usb3_phy1>; | |
1415 | phy-names = "usb2-phy", "usb3-phy"; | |
1416 | power-domains = <&pgc_otg2>; | |
1417 | usb3-resume-missing-cas; | |
1418 | status = "disabled"; | |
1419 | }; | |
1420 | ||
1421 | usb3_phy1: usb-phy@382f0040 { | |
1422 | compatible = "fsl,imx8mq-usb-phy"; | |
1423 | reg = <0x382f0040 0x40>; | |
1424 | clocks = <&clk IMX8MQ_CLK_USB2_PHY_ROOT>; | |
1425 | clock-names = "phy"; | |
1426 | assigned-clocks = <&clk IMX8MQ_CLK_USB_PHY_REF>; | |
1427 | assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_100M>; | |
1428 | assigned-clock-rates = <100000000>; | |
1429 | #phy-cells = <0>; | |
1430 | status = "disabled"; | |
1431 | }; | |
1432 | ||
36cebead PZ |
1433 | vpu: video-codec@38300000 { |
1434 | compatible = "nxp,imx8mq-vpu"; | |
1435 | reg = <0x38300000 0x10000>, | |
1436 | <0x38310000 0x10000>, | |
1437 | <0x38320000 0x10000>; | |
1438 | reg-names = "g1", "g2", "ctrl"; | |
1439 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, | |
1440 | <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | |
1441 | interrupt-names = "g1", "g2"; | |
1442 | clocks = <&clk IMX8MQ_CLK_VPU_G1_ROOT>, | |
1443 | <&clk IMX8MQ_CLK_VPU_G2_ROOT>, | |
1444 | <&clk IMX8MQ_CLK_VPU_DEC_ROOT>; | |
1445 | clock-names = "g1", "g2", "bus"; | |
1446 | assigned-clocks = <&clk IMX8MQ_CLK_VPU_G1>, | |
1447 | <&clk IMX8MQ_CLK_VPU_G2>, | |
1448 | <&clk IMX8MQ_CLK_VPU_BUS>, | |
1449 | <&clk IMX8MQ_VPU_PLL_BYPASS>; | |
1450 | assigned-clock-parents = <&clk IMX8MQ_VPU_PLL_OUT>, | |
1451 | <&clk IMX8MQ_VPU_PLL_OUT>, | |
1452 | <&clk IMX8MQ_SYS1_PLL_800M>, | |
1453 | <&clk IMX8MQ_VPU_PLL>; | |
1454 | assigned-clock-rates = <600000000>, <600000000>, | |
1455 | <800000000>, <0>; | |
1456 | power-domains = <&pgc_vpu>; | |
1457 | }; | |
1458 | ||
fc26e600 AS |
1459 | pcie0: pcie@33800000 { |
1460 | compatible = "fsl,imx8mq-pcie"; | |
1461 | reg = <0x33800000 0x400000>, | |
1462 | <0x1ff00000 0x80000>; | |
1463 | reg-names = "dbi", "config"; | |
1464 | #address-cells = <3>; | |
1465 | #size-cells = <2>; | |
1466 | device_type = "pci"; | |
1467 | bus-range = <0x00 0xff>; | |
c179ee1e RZ |
1468 | ranges = <0x81000000 0 0x00000000 0x1ff80000 0 0x00010000>, /* downstream I/O 64KB */ |
1469 | <0x82000000 0 0x18000000 0x18000000 0 0x07f00000>; /* non-prefetchable memory */ | |
fc26e600 | 1470 | num-lanes = <1>; |
fc26e600 AS |
1471 | interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; |
1472 | interrupt-names = "msi"; | |
1473 | #interrupt-cells = <1>; | |
1474 | interrupt-map-mask = <0 0 0 0x7>; | |
1475 | interrupt-map = <0 0 0 1 &gic GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, | |
1476 | <0 0 0 2 &gic GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, | |
1477 | <0 0 0 3 &gic GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, | |
1478 | <0 0 0 4 &gic GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | |
1479 | fsl,max-link-speed = <2>; | |
c0b70f05 | 1480 | linux,pci-domain = <0>; |
fc26e600 AS |
1481 | power-domains = <&pgc_pcie>; |
1482 | resets = <&src IMX8MQ_RESET_PCIEPHY>, | |
1483 | <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>, | |
1484 | <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>; | |
1485 | reset-names = "pciephy", "apps", "turnoff"; | |
15a5261e LS |
1486 | assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>, |
1487 | <&clk IMX8MQ_CLK_PCIE1_PHY>, | |
1488 | <&clk IMX8MQ_CLK_PCIE1_AUX>; | |
1489 | assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, | |
1490 | <&clk IMX8MQ_SYS2_PLL_100M>, | |
1491 | <&clk IMX8MQ_SYS1_PLL_80M>; | |
1492 | assigned-clock-rates = <250000000>, <100000000>, | |
1493 | <10000000>; | |
fc26e600 AS |
1494 | status = "disabled"; |
1495 | }; | |
1496 | ||
1497 | pcie1: pcie@33c00000 { | |
1498 | compatible = "fsl,imx8mq-pcie"; | |
1499 | reg = <0x33c00000 0x400000>, | |
1500 | <0x27f00000 0x80000>; | |
1501 | reg-names = "dbi", "config"; | |
1502 | #address-cells = <3>; | |
1503 | #size-cells = <2>; | |
1504 | device_type = "pci"; | |
c179ee1e RZ |
1505 | ranges = <0x81000000 0 0x00000000 0x27f80000 0 0x00010000>, /* downstream I/O 64KB */ |
1506 | <0x82000000 0 0x20000000 0x20000000 0 0x07f00000>; /* non-prefetchable memory */ | |
fc26e600 | 1507 | num-lanes = <1>; |
fc26e600 AS |
1508 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; |
1509 | interrupt-names = "msi"; | |
1510 | #interrupt-cells = <1>; | |
1511 | interrupt-map-mask = <0 0 0 0x7>; | |
1512 | interrupt-map = <0 0 0 1 &gic GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, | |
1513 | <0 0 0 2 &gic GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, | |
1514 | <0 0 0 3 &gic GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, | |
1515 | <0 0 0 4 &gic GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | |
1516 | fsl,max-link-speed = <2>; | |
c0b70f05 | 1517 | linux,pci-domain = <1>; |
fc26e600 AS |
1518 | power-domains = <&pgc_pcie>; |
1519 | resets = <&src IMX8MQ_RESET_PCIEPHY2>, | |
1520 | <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>, | |
1521 | <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>; | |
1522 | reset-names = "pciephy", "apps", "turnoff"; | |
15a5261e LS |
1523 | assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>, |
1524 | <&clk IMX8MQ_CLK_PCIE2_PHY>, | |
1525 | <&clk IMX8MQ_CLK_PCIE2_AUX>; | |
1526 | assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>, | |
1527 | <&clk IMX8MQ_SYS2_PLL_100M>, | |
1528 | <&clk IMX8MQ_SYS1_PLL_80M>; | |
1529 | assigned-clock-rates = <250000000>, <100000000>, | |
1530 | <10000000>; | |
fc26e600 AS |
1531 | status = "disabled"; |
1532 | }; | |
1533 | ||
748f908c LS |
1534 | gic: interrupt-controller@38800000 { |
1535 | compatible = "arm,gic-v3"; | |
1536 | reg = <0x38800000 0x10000>, /* GIC Dist */ | |
1537 | <0x38880000 0xc0000>, /* GICR */ | |
1538 | <0x31000000 0x2000>, /* GICC */ | |
1539 | <0x31010000 0x2000>, /* GICV */ | |
1540 | <0x31020000 0x2000>; /* GICH */ | |
1541 | #interrupt-cells = <3>; | |
1542 | interrupt-controller; | |
1543 | interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; | |
1544 | interrupt-parent = <&gic>; | |
1545 | }; | |
1efe85c9 | 1546 | |
0376f6ec LC |
1547 | ddrc: memory-controller@3d400000 { |
1548 | compatible = "fsl,imx8mq-ddrc", "fsl,imx8m-ddrc"; | |
1549 | reg = <0x3d400000 0x400000>; | |
1550 | clock-names = "core", "pll", "alt", "apb"; | |
1551 | clocks = <&clk IMX8MQ_CLK_DRAM_CORE>, | |
1552 | <&clk IMX8MQ_DRAM_PLL_OUT>, | |
1553 | <&clk IMX8MQ_CLK_DRAM_ALT>, | |
1554 | <&clk IMX8MQ_CLK_DRAM_APB>; | |
1555 | }; | |
1556 | ||
1efe85c9 LC |
1557 | ddr-pmu@3d800000 { |
1558 | compatible = "fsl,imx8mq-ddr-pmu", "fsl,imx8m-ddr-pmu"; | |
1559 | reg = <0x3d800000 0x400000>; | |
1560 | interrupt-parent = <&gic>; | |
1561 | interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; | |
1562 | }; | |
748f908c LS |
1563 | }; |
1564 | }; |