blob: f7a91d43a0ffe10e85e2b1e71ff6751c314b6ef7 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright 2018-2019 NXP
4 * Dong Aisheng <aisheng.dong@nxp.com>
5 */
6
7#include <dt-bindings/clock/imx8-lpcg.h>
Tom Rini6bb92fc2024-05-20 09:54:58 -06008#include <dt-bindings/dma/fsl-edma.h>
Tom Rini53633a82024-02-29 12:33:36 -05009#include <dt-bindings/firmware/imx/rsrc.h>
10
11dma_ipg_clk: clock-dma-ipg {
12 compatible = "fixed-clock";
13 #clock-cells = <0>;
14 clock-frequency = <120000000>;
15 clock-output-names = "dma_ipg_clk";
16};
17
18dma_subsys: bus@5a000000 {
19 compatible = "simple-bus";
20 #address-cells = <1>;
21 #size-cells = <1>;
22 ranges = <0x5a000000 0x0 0x5a000000 0x1000000>;
23
24 lpspi0: spi@5a000000 {
25 compatible = "fsl,imx7ulp-spi";
26 reg = <0x5a000000 0x10000>;
27 #address-cells = <1>;
28 #size-cells = <0>;
29 interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>;
30 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060031 clocks = <&spi0_lpcg IMX_LPCG_CLK_0>,
32 <&spi0_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050033 clock-names = "per", "ipg";
34 assigned-clocks = <&clk IMX_SC_R_SPI_0 IMX_SC_PM_CLK_PER>;
35 assigned-clock-rates = <60000000>;
36 power-domains = <&pd IMX_SC_R_SPI_0>;
37 status = "disabled";
38 };
39
40 lpspi1: spi@5a010000 {
41 compatible = "fsl,imx7ulp-spi";
42 reg = <0x5a010000 0x10000>;
43 #address-cells = <1>;
44 #size-cells = <0>;
45 interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
46 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060047 clocks = <&spi1_lpcg IMX_LPCG_CLK_0>,
48 <&spi1_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050049 clock-names = "per", "ipg";
50 assigned-clocks = <&clk IMX_SC_R_SPI_1 IMX_SC_PM_CLK_PER>;
51 assigned-clock-rates = <60000000>;
52 power-domains = <&pd IMX_SC_R_SPI_1>;
53 status = "disabled";
54 };
55
56 lpspi2: spi@5a020000 {
57 compatible = "fsl,imx7ulp-spi";
58 reg = <0x5a020000 0x10000>;
59 #address-cells = <1>;
60 #size-cells = <0>;
61 interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
62 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060063 clocks = <&spi2_lpcg IMX_LPCG_CLK_0>,
64 <&spi2_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050065 clock-names = "per", "ipg";
66 assigned-clocks = <&clk IMX_SC_R_SPI_2 IMX_SC_PM_CLK_PER>;
67 assigned-clock-rates = <60000000>;
68 power-domains = <&pd IMX_SC_R_SPI_2>;
69 status = "disabled";
70 };
71
72 lpspi3: spi@5a030000 {
73 compatible = "fsl,imx7ulp-spi";
74 reg = <0x5a030000 0x10000>;
75 #address-cells = <1>;
76 #size-cells = <0>;
77 interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
78 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060079 clocks = <&spi3_lpcg IMX_LPCG_CLK_0>,
80 <&spi3_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050081 clock-names = "per", "ipg";
82 assigned-clocks = <&clk IMX_SC_R_SPI_3 IMX_SC_PM_CLK_PER>;
83 assigned-clock-rates = <60000000>;
84 power-domains = <&pd IMX_SC_R_SPI_3>;
85 status = "disabled";
86 };
87
88 lpuart0: serial@5a060000 {
89 reg = <0x5a060000 0x1000>;
90 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
91 clocks = <&uart0_lpcg IMX_LPCG_CLK_4>,
92 <&uart0_lpcg IMX_LPCG_CLK_0>;
93 clock-names = "ipg", "baud";
94 assigned-clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>;
95 assigned-clock-rates = <80000000>;
96 power-domains = <&pd IMX_SC_R_UART_0>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060097 dma-names = "rx", "tx";
98 dmas = <&edma2 8 0 FSL_EDMA_RX>, <&edma2 9 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -050099 status = "disabled";
100 };
101
102 lpuart1: serial@5a070000 {
103 reg = <0x5a070000 0x1000>;
104 interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
105 clocks = <&uart1_lpcg IMX_LPCG_CLK_4>,
106 <&uart1_lpcg IMX_LPCG_CLK_0>;
107 clock-names = "ipg", "baud";
108 assigned-clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>;
109 assigned-clock-rates = <80000000>;
110 power-domains = <&pd IMX_SC_R_UART_1>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600111 dma-names = "rx", "tx";
112 dmas = <&edma2 10 0 FSL_EDMA_RX>, <&edma2 11 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500113 status = "disabled";
114 };
115
116 lpuart2: serial@5a080000 {
117 reg = <0x5a080000 0x1000>;
118 interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
119 clocks = <&uart2_lpcg IMX_LPCG_CLK_4>,
120 <&uart2_lpcg IMX_LPCG_CLK_0>;
121 clock-names = "ipg", "baud";
122 assigned-clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>;
123 assigned-clock-rates = <80000000>;
124 power-domains = <&pd IMX_SC_R_UART_2>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600125 dma-names = "rx", "tx";
126 dmas = <&edma2 12 0 FSL_EDMA_RX>, <&edma2 13 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500127 status = "disabled";
128 };
129
130 lpuart3: serial@5a090000 {
131 reg = <0x5a090000 0x1000>;
132 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>;
133 clocks = <&uart3_lpcg IMX_LPCG_CLK_4>,
134 <&uart3_lpcg IMX_LPCG_CLK_0>;
135 clock-names = "ipg", "baud";
136 assigned-clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>;
137 assigned-clock-rates = <80000000>;
138 power-domains = <&pd IMX_SC_R_UART_3>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600139 dma-names = "rx", "tx";
140 dmas = <&edma2 14 0 FSL_EDMA_RX>, <&edma2 15 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500141 status = "disabled";
142 };
143
144 adma_pwm: pwm@5a190000 {
145 compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
146 reg = <0x5a190000 0x1000>;
147 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600148 clocks = <&adma_pwm_lpcg IMX_LPCG_CLK_4>,
149 <&adma_pwm_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500150 clock-names = "ipg", "per";
151 assigned-clocks = <&clk IMX_SC_R_LCD_0_PWM_0 IMX_SC_PM_CLK_PER>;
152 assigned-clock-rates = <24000000>;
153 #pwm-cells = <3>;
154 power-domains = <&pd IMX_SC_R_LCD_0_PWM_0>;
155 };
156
157 edma2: dma-controller@5a1f0000 {
158 compatible = "fsl,imx8qm-edma";
159 reg = <0x5a1f0000 0x170000>;
160 #dma-cells = <3>;
161 dma-channels = <16>;
162 interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
163 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
164 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
165 <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
166 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
167 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
168 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
169 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
170 <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
171 <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
172 <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
173 <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>,
174 <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
175 <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>,
176 <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
177 <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>;
178 power-domains = <&pd IMX_SC_R_DMA_2_CH0>,
179 <&pd IMX_SC_R_DMA_2_CH1>,
180 <&pd IMX_SC_R_DMA_2_CH2>,
181 <&pd IMX_SC_R_DMA_2_CH3>,
182 <&pd IMX_SC_R_DMA_2_CH4>,
183 <&pd IMX_SC_R_DMA_2_CH5>,
184 <&pd IMX_SC_R_DMA_2_CH6>,
185 <&pd IMX_SC_R_DMA_2_CH7>,
186 <&pd IMX_SC_R_DMA_2_CH8>,
187 <&pd IMX_SC_R_DMA_2_CH9>,
188 <&pd IMX_SC_R_DMA_2_CH10>,
189 <&pd IMX_SC_R_DMA_2_CH11>,
190 <&pd IMX_SC_R_DMA_2_CH12>,
191 <&pd IMX_SC_R_DMA_2_CH13>,
192 <&pd IMX_SC_R_DMA_2_CH14>,
193 <&pd IMX_SC_R_DMA_2_CH15>;
194 };
195
Tom Rini53633a82024-02-29 12:33:36 -0500196 spi0_lpcg: clock-controller@5a400000 {
197 compatible = "fsl,imx8qxp-lpcg";
198 reg = <0x5a400000 0x10000>;
199 #clock-cells = <1>;
200 clocks = <&clk IMX_SC_R_SPI_0 IMX_SC_PM_CLK_PER>,
201 <&dma_ipg_clk>;
202 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
203 clock-output-names = "spi0_lpcg_clk",
204 "spi0_lpcg_ipg_clk";
205 power-domains = <&pd IMX_SC_R_SPI_0>;
206 };
207
208 spi1_lpcg: clock-controller@5a410000 {
209 compatible = "fsl,imx8qxp-lpcg";
210 reg = <0x5a410000 0x10000>;
211 #clock-cells = <1>;
212 clocks = <&clk IMX_SC_R_SPI_1 IMX_SC_PM_CLK_PER>,
213 <&dma_ipg_clk>;
214 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
215 clock-output-names = "spi1_lpcg_clk",
216 "spi1_lpcg_ipg_clk";
217 power-domains = <&pd IMX_SC_R_SPI_1>;
218 };
219
220 spi2_lpcg: clock-controller@5a420000 {
221 compatible = "fsl,imx8qxp-lpcg";
222 reg = <0x5a420000 0x10000>;
223 #clock-cells = <1>;
224 clocks = <&clk IMX_SC_R_SPI_2 IMX_SC_PM_CLK_PER>,
225 <&dma_ipg_clk>;
226 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
227 clock-output-names = "spi2_lpcg_clk",
228 "spi2_lpcg_ipg_clk";
229 power-domains = <&pd IMX_SC_R_SPI_2>;
230 };
231
232 spi3_lpcg: clock-controller@5a430000 {
233 compatible = "fsl,imx8qxp-lpcg";
234 reg = <0x5a430000 0x10000>;
235 #clock-cells = <1>;
236 clocks = <&clk IMX_SC_R_SPI_3 IMX_SC_PM_CLK_PER>,
237 <&dma_ipg_clk>;
238 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
239 clock-output-names = "spi3_lpcg_clk",
240 "spi3_lpcg_ipg_clk";
241 power-domains = <&pd IMX_SC_R_SPI_3>;
242 };
243
244 uart0_lpcg: clock-controller@5a460000 {
245 compatible = "fsl,imx8qxp-lpcg";
246 reg = <0x5a460000 0x10000>;
247 #clock-cells = <1>;
248 clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>,
249 <&dma_ipg_clk>;
250 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
251 clock-output-names = "uart0_lpcg_baud_clk",
252 "uart0_lpcg_ipg_clk";
253 power-domains = <&pd IMX_SC_R_UART_0>;
254 };
255
256 uart1_lpcg: clock-controller@5a470000 {
257 compatible = "fsl,imx8qxp-lpcg";
258 reg = <0x5a470000 0x10000>;
259 #clock-cells = <1>;
260 clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>,
261 <&dma_ipg_clk>;
262 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
263 clock-output-names = "uart1_lpcg_baud_clk",
264 "uart1_lpcg_ipg_clk";
265 power-domains = <&pd IMX_SC_R_UART_1>;
266 };
267
268 uart2_lpcg: clock-controller@5a480000 {
269 compatible = "fsl,imx8qxp-lpcg";
270 reg = <0x5a480000 0x10000>;
271 #clock-cells = <1>;
272 clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>,
273 <&dma_ipg_clk>;
274 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
275 clock-output-names = "uart2_lpcg_baud_clk",
276 "uart2_lpcg_ipg_clk";
277 power-domains = <&pd IMX_SC_R_UART_2>;
278 };
279
280 uart3_lpcg: clock-controller@5a490000 {
281 compatible = "fsl,imx8qxp-lpcg";
282 reg = <0x5a490000 0x10000>;
283 #clock-cells = <1>;
284 clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>,
285 <&dma_ipg_clk>;
286 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
287 clock-output-names = "uart3_lpcg_baud_clk",
288 "uart3_lpcg_ipg_clk";
289 power-domains = <&pd IMX_SC_R_UART_3>;
290 };
291
292 adma_pwm_lpcg: clock-controller@5a590000 {
293 compatible = "fsl,imx8qxp-lpcg";
294 reg = <0x5a590000 0x10000>;
295 #clock-cells = <1>;
296 clocks = <&clk IMX_SC_R_LCD_0_PWM_0 IMX_SC_PM_CLK_PER>,
297 <&dma_ipg_clk>;
298 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
299 clock-output-names = "adma_pwm_lpcg_clk",
300 "adma_pwm_lpcg_ipg_clk";
301 power-domains = <&pd IMX_SC_R_LCD_0_PWM_0>;
302 };
303
304 i2c0: i2c@5a800000 {
305 reg = <0x5a800000 0x4000>;
306 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
307 clocks = <&i2c0_lpcg IMX_LPCG_CLK_0>,
308 <&i2c0_lpcg IMX_LPCG_CLK_4>;
309 clock-names = "per", "ipg";
310 assigned-clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>;
311 assigned-clock-rates = <24000000>;
312 power-domains = <&pd IMX_SC_R_I2C_0>;
313 status = "disabled";
314 };
315
316 i2c1: i2c@5a810000 {
317 reg = <0x5a810000 0x4000>;
318 interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
319 clocks = <&i2c1_lpcg IMX_LPCG_CLK_0>,
320 <&i2c1_lpcg IMX_LPCG_CLK_4>;
321 clock-names = "per", "ipg";
322 assigned-clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>;
323 assigned-clock-rates = <24000000>;
324 power-domains = <&pd IMX_SC_R_I2C_1>;
325 status = "disabled";
326 };
327
328 i2c2: i2c@5a820000 {
329 reg = <0x5a820000 0x4000>;
330 interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
331 clocks = <&i2c2_lpcg IMX_LPCG_CLK_0>,
332 <&i2c2_lpcg IMX_LPCG_CLK_4>;
333 clock-names = "per", "ipg";
334 assigned-clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>;
335 assigned-clock-rates = <24000000>;
336 power-domains = <&pd IMX_SC_R_I2C_2>;
337 status = "disabled";
338 };
339
340 i2c3: i2c@5a830000 {
341 reg = <0x5a830000 0x4000>;
342 interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
343 clocks = <&i2c3_lpcg IMX_LPCG_CLK_0>,
344 <&i2c3_lpcg IMX_LPCG_CLK_4>;
345 clock-names = "per", "ipg";
346 assigned-clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>;
347 assigned-clock-rates = <24000000>;
348 power-domains = <&pd IMX_SC_R_I2C_3>;
349 status = "disabled";
350 };
351
352 adc0: adc@5a880000 {
353 compatible = "nxp,imx8qxp-adc";
354 #io-channel-cells = <1>;
355 reg = <0x5a880000 0x10000>;
356 interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
357 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600358 clocks = <&adc0_lpcg IMX_LPCG_CLK_0>,
359 <&adc0_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -0500360 clock-names = "per", "ipg";
361 assigned-clocks = <&clk IMX_SC_R_ADC_0 IMX_SC_PM_CLK_PER>;
362 assigned-clock-rates = <24000000>;
363 power-domains = <&pd IMX_SC_R_ADC_0>;
364 status = "disabled";
365 };
366
367 adc1: adc@5a890000 {
368 compatible = "nxp,imx8qxp-adc";
369 #io-channel-cells = <1>;
370 reg = <0x5a890000 0x10000>;
371 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
372 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600373 clocks = <&adc1_lpcg IMX_LPCG_CLK_0>,
374 <&adc1_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -0500375 clock-names = "per", "ipg";
376 assigned-clocks = <&clk IMX_SC_R_ADC_1 IMX_SC_PM_CLK_PER>;
377 assigned-clock-rates = <24000000>;
378 power-domains = <&pd IMX_SC_R_ADC_1>;
379 status = "disabled";
380 };
381
382 flexcan1: can@5a8d0000 {
383 compatible = "fsl,imx8qm-flexcan";
384 reg = <0x5a8d0000 0x10000>;
385 interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
386 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600387 clocks = <&can0_lpcg IMX_LPCG_CLK_4>,
388 <&can0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500389 clock-names = "ipg", "per";
390 assigned-clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>;
391 assigned-clock-rates = <40000000>;
392 power-domains = <&pd IMX_SC_R_CAN_0>;
393 /* SLSlice[4] */
394 fsl,clk-source = /bits/ 8 <0>;
395 fsl,scu-index = /bits/ 8 <0>;
396 status = "disabled";
397 };
398
399 flexcan2: can@5a8e0000 {
400 compatible = "fsl,imx8qm-flexcan";
401 reg = <0x5a8e0000 0x10000>;
402 interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>;
403 interrupt-parent = <&gic>;
404 /* CAN0 clock and PD is shared among all CAN instances as
405 * CAN1 shares CAN0's clock and to enable CAN0's clock it
406 * has to be powered on.
407 */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600408 clocks = <&can0_lpcg IMX_LPCG_CLK_4>,
409 <&can0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500410 clock-names = "ipg", "per";
411 assigned-clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>;
412 assigned-clock-rates = <40000000>;
413 power-domains = <&pd IMX_SC_R_CAN_1>;
414 /* SLSlice[4] */
415 fsl,clk-source = /bits/ 8 <0>;
416 fsl,scu-index = /bits/ 8 <1>;
417 status = "disabled";
418 };
419
420 flexcan3: can@5a8f0000 {
421 compatible = "fsl,imx8qm-flexcan";
422 reg = <0x5a8f0000 0x10000>;
423 interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>;
424 interrupt-parent = <&gic>;
425 /* CAN0 clock and PD is shared among all CAN instances as
426 * CAN2 shares CAN0's clock and to enable CAN0's clock it
427 * has to be powered on.
428 */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600429 clocks = <&can0_lpcg IMX_LPCG_CLK_4>,
430 <&can0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500431 clock-names = "ipg", "per";
432 assigned-clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>;
433 assigned-clock-rates = <40000000>;
434 power-domains = <&pd IMX_SC_R_CAN_2>;
435 /* SLSlice[4] */
436 fsl,clk-source = /bits/ 8 <0>;
437 fsl,scu-index = /bits/ 8 <2>;
438 status = "disabled";
439 };
440
Tom Rini6bb92fc2024-05-20 09:54:58 -0600441 edma3: dma-controller@5a9f0000 {
442 compatible = "fsl,imx8qm-edma";
443 reg = <0x5a9f0000 0x90000>;
444 #dma-cells = <3>;
445 dma-channels = <8>;
446 interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
447 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
448 <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
449 <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
450 <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
451 <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
452 <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>,
453 <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
454 power-domains = <&pd IMX_SC_R_DMA_3_CH0>,
455 <&pd IMX_SC_R_DMA_3_CH1>,
456 <&pd IMX_SC_R_DMA_3_CH2>,
457 <&pd IMX_SC_R_DMA_3_CH3>,
458 <&pd IMX_SC_R_DMA_3_CH4>,
459 <&pd IMX_SC_R_DMA_3_CH5>,
460 <&pd IMX_SC_R_DMA_3_CH6>,
461 <&pd IMX_SC_R_DMA_3_CH7>;
462 };
463
Tom Rini53633a82024-02-29 12:33:36 -0500464 i2c0_lpcg: clock-controller@5ac00000 {
465 compatible = "fsl,imx8qxp-lpcg";
466 reg = <0x5ac00000 0x10000>;
467 #clock-cells = <1>;
468 clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>,
469 <&dma_ipg_clk>;
470 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
471 clock-output-names = "i2c0_lpcg_clk",
472 "i2c0_lpcg_ipg_clk";
473 power-domains = <&pd IMX_SC_R_I2C_0>;
474 };
475
476 i2c1_lpcg: clock-controller@5ac10000 {
477 compatible = "fsl,imx8qxp-lpcg";
478 reg = <0x5ac10000 0x10000>;
479 #clock-cells = <1>;
480 clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>,
481 <&dma_ipg_clk>;
482 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
483 clock-output-names = "i2c1_lpcg_clk",
484 "i2c1_lpcg_ipg_clk";
485 power-domains = <&pd IMX_SC_R_I2C_1>;
486 };
487
488 i2c2_lpcg: clock-controller@5ac20000 {
489 compatible = "fsl,imx8qxp-lpcg";
490 reg = <0x5ac20000 0x10000>;
491 #clock-cells = <1>;
492 clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>,
493 <&dma_ipg_clk>;
494 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
495 clock-output-names = "i2c2_lpcg_clk",
496 "i2c2_lpcg_ipg_clk";
497 power-domains = <&pd IMX_SC_R_I2C_2>;
498 };
499
500 i2c3_lpcg: clock-controller@5ac30000 {
501 compatible = "fsl,imx8qxp-lpcg";
502 reg = <0x5ac30000 0x10000>;
503 #clock-cells = <1>;
504 clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>,
505 <&dma_ipg_clk>;
506 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
507 clock-output-names = "i2c3_lpcg_clk",
508 "i2c3_lpcg_ipg_clk";
509 power-domains = <&pd IMX_SC_R_I2C_3>;
510 };
511
512 adc0_lpcg: clock-controller@5ac80000 {
513 compatible = "fsl,imx8qxp-lpcg";
514 reg = <0x5ac80000 0x10000>;
515 #clock-cells = <1>;
516 clocks = <&clk IMX_SC_R_ADC_0 IMX_SC_PM_CLK_PER>,
517 <&dma_ipg_clk>;
518 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
519 clock-output-names = "adc0_lpcg_clk",
520 "adc0_lpcg_ipg_clk";
521 power-domains = <&pd IMX_SC_R_ADC_0>;
522 };
523
524 adc1_lpcg: clock-controller@5ac90000 {
525 compatible = "fsl,imx8qxp-lpcg";
526 reg = <0x5ac90000 0x10000>;
527 #clock-cells = <1>;
528 clocks = <&clk IMX_SC_R_ADC_1 IMX_SC_PM_CLK_PER>,
529 <&dma_ipg_clk>;
530 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
531 clock-output-names = "adc1_lpcg_clk",
532 "adc1_lpcg_ipg_clk";
533 power-domains = <&pd IMX_SC_R_ADC_1>;
534 };
535
536 can0_lpcg: clock-controller@5acd0000 {
537 compatible = "fsl,imx8qxp-lpcg";
538 reg = <0x5acd0000 0x10000>;
539 #clock-cells = <1>;
540 clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>,
541 <&dma_ipg_clk>, <&dma_ipg_clk>;
542 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
543 clock-output-names = "can0_lpcg_pe_clk",
544 "can0_lpcg_ipg_clk",
545 "can0_lpcg_chi_clk";
546 power-domains = <&pd IMX_SC_R_CAN_0>;
547 };
548};