blob: 575be8115e427e5eca1635af08dfe3450048a2b6 [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>;
Tom Rini9c8af152024-12-24 12:03:04 -060037 dmas = <&edma2 1 0 0>, <&edma2 0 0 FSL_EDMA_RX>;
38 dma-names = "tx", "rx";
Tom Rini53633a82024-02-29 12:33:36 -050039 status = "disabled";
40 };
41
42 lpspi1: spi@5a010000 {
43 compatible = "fsl,imx7ulp-spi";
44 reg = <0x5a010000 0x10000>;
45 #address-cells = <1>;
46 #size-cells = <0>;
47 interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
48 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060049 clocks = <&spi1_lpcg IMX_LPCG_CLK_0>,
50 <&spi1_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050051 clock-names = "per", "ipg";
52 assigned-clocks = <&clk IMX_SC_R_SPI_1 IMX_SC_PM_CLK_PER>;
53 assigned-clock-rates = <60000000>;
54 power-domains = <&pd IMX_SC_R_SPI_1>;
Tom Rini9c8af152024-12-24 12:03:04 -060055 dmas = <&edma2 3 0 0>, <&edma2 2 0 FSL_EDMA_RX>;
56 dma-names = "tx", "rx";
Tom Rini53633a82024-02-29 12:33:36 -050057 status = "disabled";
58 };
59
60 lpspi2: spi@5a020000 {
61 compatible = "fsl,imx7ulp-spi";
62 reg = <0x5a020000 0x10000>;
63 #address-cells = <1>;
64 #size-cells = <0>;
65 interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
66 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060067 clocks = <&spi2_lpcg IMX_LPCG_CLK_0>,
68 <&spi2_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050069 clock-names = "per", "ipg";
70 assigned-clocks = <&clk IMX_SC_R_SPI_2 IMX_SC_PM_CLK_PER>;
71 assigned-clock-rates = <60000000>;
72 power-domains = <&pd IMX_SC_R_SPI_2>;
Tom Rini9c8af152024-12-24 12:03:04 -060073 dmas = <&edma2 5 0 0>, <&edma2 4 0 FSL_EDMA_RX>;
74 dma-names = "tx", "rx";
Tom Rini53633a82024-02-29 12:33:36 -050075 status = "disabled";
76 };
77
78 lpspi3: spi@5a030000 {
79 compatible = "fsl,imx7ulp-spi";
80 reg = <0x5a030000 0x10000>;
81 #address-cells = <1>;
82 #size-cells = <0>;
83 interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
84 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060085 clocks = <&spi3_lpcg IMX_LPCG_CLK_0>,
86 <&spi3_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -050087 clock-names = "per", "ipg";
88 assigned-clocks = <&clk IMX_SC_R_SPI_3 IMX_SC_PM_CLK_PER>;
89 assigned-clock-rates = <60000000>;
90 power-domains = <&pd IMX_SC_R_SPI_3>;
Tom Rini9c8af152024-12-24 12:03:04 -060091 dmas = <&edma2 7 0 0>, <&edma2 6 0 FSL_EDMA_RX>;
92 dma-names = "tx", "rx";
Tom Rini53633a82024-02-29 12:33:36 -050093 status = "disabled";
94 };
95
96 lpuart0: serial@5a060000 {
97 reg = <0x5a060000 0x1000>;
98 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
99 clocks = <&uart0_lpcg IMX_LPCG_CLK_4>,
100 <&uart0_lpcg IMX_LPCG_CLK_0>;
101 clock-names = "ipg", "baud";
102 assigned-clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>;
103 assigned-clock-rates = <80000000>;
104 power-domains = <&pd IMX_SC_R_UART_0>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600105 dma-names = "rx", "tx";
106 dmas = <&edma2 8 0 FSL_EDMA_RX>, <&edma2 9 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500107 status = "disabled";
108 };
109
110 lpuart1: serial@5a070000 {
111 reg = <0x5a070000 0x1000>;
112 interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
113 clocks = <&uart1_lpcg IMX_LPCG_CLK_4>,
114 <&uart1_lpcg IMX_LPCG_CLK_0>;
115 clock-names = "ipg", "baud";
116 assigned-clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>;
117 assigned-clock-rates = <80000000>;
118 power-domains = <&pd IMX_SC_R_UART_1>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600119 dma-names = "rx", "tx";
120 dmas = <&edma2 10 0 FSL_EDMA_RX>, <&edma2 11 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500121 status = "disabled";
122 };
123
124 lpuart2: serial@5a080000 {
125 reg = <0x5a080000 0x1000>;
126 interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
127 clocks = <&uart2_lpcg IMX_LPCG_CLK_4>,
128 <&uart2_lpcg IMX_LPCG_CLK_0>;
129 clock-names = "ipg", "baud";
130 assigned-clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>;
131 assigned-clock-rates = <80000000>;
132 power-domains = <&pd IMX_SC_R_UART_2>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600133 dma-names = "rx", "tx";
134 dmas = <&edma2 12 0 FSL_EDMA_RX>, <&edma2 13 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500135 status = "disabled";
136 };
137
138 lpuart3: serial@5a090000 {
139 reg = <0x5a090000 0x1000>;
140 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>;
141 clocks = <&uart3_lpcg IMX_LPCG_CLK_4>,
142 <&uart3_lpcg IMX_LPCG_CLK_0>;
143 clock-names = "ipg", "baud";
144 assigned-clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>;
145 assigned-clock-rates = <80000000>;
146 power-domains = <&pd IMX_SC_R_UART_3>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600147 dma-names = "rx", "tx";
148 dmas = <&edma2 14 0 FSL_EDMA_RX>, <&edma2 15 0 0>;
Tom Rini53633a82024-02-29 12:33:36 -0500149 status = "disabled";
150 };
151
152 adma_pwm: pwm@5a190000 {
153 compatible = "fsl,imx8qxp-pwm", "fsl,imx27-pwm";
154 reg = <0x5a190000 0x1000>;
155 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600156 clocks = <&adma_pwm_lpcg IMX_LPCG_CLK_4>,
157 <&adma_pwm_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500158 clock-names = "ipg", "per";
159 assigned-clocks = <&clk IMX_SC_R_LCD_0_PWM_0 IMX_SC_PM_CLK_PER>;
160 assigned-clock-rates = <24000000>;
161 #pwm-cells = <3>;
162 power-domains = <&pd IMX_SC_R_LCD_0_PWM_0>;
163 };
164
165 edma2: dma-controller@5a1f0000 {
166 compatible = "fsl,imx8qm-edma";
167 reg = <0x5a1f0000 0x170000>;
168 #dma-cells = <3>;
169 dma-channels = <16>;
170 interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
171 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
172 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
173 <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
174 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
175 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
176 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
177 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
178 <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
179 <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
180 <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>,
181 <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>,
182 <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
183 <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>,
184 <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>,
185 <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>;
186 power-domains = <&pd IMX_SC_R_DMA_2_CH0>,
187 <&pd IMX_SC_R_DMA_2_CH1>,
188 <&pd IMX_SC_R_DMA_2_CH2>,
189 <&pd IMX_SC_R_DMA_2_CH3>,
190 <&pd IMX_SC_R_DMA_2_CH4>,
191 <&pd IMX_SC_R_DMA_2_CH5>,
192 <&pd IMX_SC_R_DMA_2_CH6>,
193 <&pd IMX_SC_R_DMA_2_CH7>,
194 <&pd IMX_SC_R_DMA_2_CH8>,
195 <&pd IMX_SC_R_DMA_2_CH9>,
196 <&pd IMX_SC_R_DMA_2_CH10>,
197 <&pd IMX_SC_R_DMA_2_CH11>,
198 <&pd IMX_SC_R_DMA_2_CH12>,
199 <&pd IMX_SC_R_DMA_2_CH13>,
200 <&pd IMX_SC_R_DMA_2_CH14>,
201 <&pd IMX_SC_R_DMA_2_CH15>;
202 };
203
Tom Rini53633a82024-02-29 12:33:36 -0500204 spi0_lpcg: clock-controller@5a400000 {
205 compatible = "fsl,imx8qxp-lpcg";
206 reg = <0x5a400000 0x10000>;
207 #clock-cells = <1>;
208 clocks = <&clk IMX_SC_R_SPI_0 IMX_SC_PM_CLK_PER>,
209 <&dma_ipg_clk>;
210 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
211 clock-output-names = "spi0_lpcg_clk",
212 "spi0_lpcg_ipg_clk";
213 power-domains = <&pd IMX_SC_R_SPI_0>;
214 };
215
216 spi1_lpcg: clock-controller@5a410000 {
217 compatible = "fsl,imx8qxp-lpcg";
218 reg = <0x5a410000 0x10000>;
219 #clock-cells = <1>;
220 clocks = <&clk IMX_SC_R_SPI_1 IMX_SC_PM_CLK_PER>,
221 <&dma_ipg_clk>;
222 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
223 clock-output-names = "spi1_lpcg_clk",
224 "spi1_lpcg_ipg_clk";
225 power-domains = <&pd IMX_SC_R_SPI_1>;
226 };
227
228 spi2_lpcg: clock-controller@5a420000 {
229 compatible = "fsl,imx8qxp-lpcg";
230 reg = <0x5a420000 0x10000>;
231 #clock-cells = <1>;
232 clocks = <&clk IMX_SC_R_SPI_2 IMX_SC_PM_CLK_PER>,
233 <&dma_ipg_clk>;
234 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
235 clock-output-names = "spi2_lpcg_clk",
236 "spi2_lpcg_ipg_clk";
237 power-domains = <&pd IMX_SC_R_SPI_2>;
238 };
239
240 spi3_lpcg: clock-controller@5a430000 {
241 compatible = "fsl,imx8qxp-lpcg";
242 reg = <0x5a430000 0x10000>;
243 #clock-cells = <1>;
244 clocks = <&clk IMX_SC_R_SPI_3 IMX_SC_PM_CLK_PER>,
245 <&dma_ipg_clk>;
246 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
247 clock-output-names = "spi3_lpcg_clk",
248 "spi3_lpcg_ipg_clk";
249 power-domains = <&pd IMX_SC_R_SPI_3>;
250 };
251
252 uart0_lpcg: clock-controller@5a460000 {
253 compatible = "fsl,imx8qxp-lpcg";
254 reg = <0x5a460000 0x10000>;
255 #clock-cells = <1>;
256 clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>,
257 <&dma_ipg_clk>;
258 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
259 clock-output-names = "uart0_lpcg_baud_clk",
260 "uart0_lpcg_ipg_clk";
261 power-domains = <&pd IMX_SC_R_UART_0>;
262 };
263
264 uart1_lpcg: clock-controller@5a470000 {
265 compatible = "fsl,imx8qxp-lpcg";
266 reg = <0x5a470000 0x10000>;
267 #clock-cells = <1>;
268 clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>,
269 <&dma_ipg_clk>;
270 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
271 clock-output-names = "uart1_lpcg_baud_clk",
272 "uart1_lpcg_ipg_clk";
273 power-domains = <&pd IMX_SC_R_UART_1>;
274 };
275
276 uart2_lpcg: clock-controller@5a480000 {
277 compatible = "fsl,imx8qxp-lpcg";
278 reg = <0x5a480000 0x10000>;
279 #clock-cells = <1>;
280 clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>,
281 <&dma_ipg_clk>;
282 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
283 clock-output-names = "uart2_lpcg_baud_clk",
284 "uart2_lpcg_ipg_clk";
285 power-domains = <&pd IMX_SC_R_UART_2>;
286 };
287
288 uart3_lpcg: clock-controller@5a490000 {
289 compatible = "fsl,imx8qxp-lpcg";
290 reg = <0x5a490000 0x10000>;
291 #clock-cells = <1>;
292 clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>,
293 <&dma_ipg_clk>;
294 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
295 clock-output-names = "uart3_lpcg_baud_clk",
296 "uart3_lpcg_ipg_clk";
297 power-domains = <&pd IMX_SC_R_UART_3>;
298 };
299
300 adma_pwm_lpcg: clock-controller@5a590000 {
301 compatible = "fsl,imx8qxp-lpcg";
302 reg = <0x5a590000 0x10000>;
303 #clock-cells = <1>;
304 clocks = <&clk IMX_SC_R_LCD_0_PWM_0 IMX_SC_PM_CLK_PER>,
305 <&dma_ipg_clk>;
306 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
307 clock-output-names = "adma_pwm_lpcg_clk",
308 "adma_pwm_lpcg_ipg_clk";
309 power-domains = <&pd IMX_SC_R_LCD_0_PWM_0>;
310 };
311
312 i2c0: i2c@5a800000 {
313 reg = <0x5a800000 0x4000>;
Tom Rini9c8af152024-12-24 12:03:04 -0600314 #address-cells = <1>;
315 #size-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500316 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
317 clocks = <&i2c0_lpcg IMX_LPCG_CLK_0>,
318 <&i2c0_lpcg IMX_LPCG_CLK_4>;
319 clock-names = "per", "ipg";
320 assigned-clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>;
321 assigned-clock-rates = <24000000>;
322 power-domains = <&pd IMX_SC_R_I2C_0>;
323 status = "disabled";
324 };
325
326 i2c1: i2c@5a810000 {
327 reg = <0x5a810000 0x4000>;
Tom Rini9c8af152024-12-24 12:03:04 -0600328 #address-cells = <1>;
329 #size-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500330 interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
331 clocks = <&i2c1_lpcg IMX_LPCG_CLK_0>,
332 <&i2c1_lpcg IMX_LPCG_CLK_4>;
333 clock-names = "per", "ipg";
334 assigned-clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>;
335 assigned-clock-rates = <24000000>;
336 power-domains = <&pd IMX_SC_R_I2C_1>;
337 status = "disabled";
338 };
339
340 i2c2: i2c@5a820000 {
341 reg = <0x5a820000 0x4000>;
Tom Rini9c8af152024-12-24 12:03:04 -0600342 #address-cells = <1>;
343 #size-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500344 interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
345 clocks = <&i2c2_lpcg IMX_LPCG_CLK_0>,
346 <&i2c2_lpcg IMX_LPCG_CLK_4>;
347 clock-names = "per", "ipg";
348 assigned-clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>;
349 assigned-clock-rates = <24000000>;
350 power-domains = <&pd IMX_SC_R_I2C_2>;
351 status = "disabled";
352 };
353
354 i2c3: i2c@5a830000 {
355 reg = <0x5a830000 0x4000>;
Tom Rini9c8af152024-12-24 12:03:04 -0600356 #address-cells = <1>;
357 #size-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500358 interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
359 clocks = <&i2c3_lpcg IMX_LPCG_CLK_0>,
360 <&i2c3_lpcg IMX_LPCG_CLK_4>;
361 clock-names = "per", "ipg";
362 assigned-clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>;
363 assigned-clock-rates = <24000000>;
364 power-domains = <&pd IMX_SC_R_I2C_3>;
365 status = "disabled";
366 };
367
368 adc0: adc@5a880000 {
369 compatible = "nxp,imx8qxp-adc";
370 #io-channel-cells = <1>;
371 reg = <0x5a880000 0x10000>;
372 interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
373 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600374 clocks = <&adc0_lpcg IMX_LPCG_CLK_0>,
375 <&adc0_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -0500376 clock-names = "per", "ipg";
377 assigned-clocks = <&clk IMX_SC_R_ADC_0 IMX_SC_PM_CLK_PER>;
378 assigned-clock-rates = <24000000>;
379 power-domains = <&pd IMX_SC_R_ADC_0>;
380 status = "disabled";
Tom Rini9c8af152024-12-24 12:03:04 -0600381 };
Tom Rini53633a82024-02-29 12:33:36 -0500382
383 adc1: adc@5a890000 {
384 compatible = "nxp,imx8qxp-adc";
385 #io-channel-cells = <1>;
386 reg = <0x5a890000 0x10000>;
387 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
388 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600389 clocks = <&adc1_lpcg IMX_LPCG_CLK_0>,
390 <&adc1_lpcg IMX_LPCG_CLK_4>;
Tom Rini53633a82024-02-29 12:33:36 -0500391 clock-names = "per", "ipg";
392 assigned-clocks = <&clk IMX_SC_R_ADC_1 IMX_SC_PM_CLK_PER>;
393 assigned-clock-rates = <24000000>;
394 power-domains = <&pd IMX_SC_R_ADC_1>;
395 status = "disabled";
396 };
397
398 flexcan1: can@5a8d0000 {
399 compatible = "fsl,imx8qm-flexcan";
400 reg = <0x5a8d0000 0x10000>;
401 interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
402 interrupt-parent = <&gic>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600403 clocks = <&can0_lpcg IMX_LPCG_CLK_4>,
404 <&can0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500405 clock-names = "ipg", "per";
406 assigned-clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>;
407 assigned-clock-rates = <40000000>;
408 power-domains = <&pd IMX_SC_R_CAN_0>;
409 /* SLSlice[4] */
410 fsl,clk-source = /bits/ 8 <0>;
411 fsl,scu-index = /bits/ 8 <0>;
412 status = "disabled";
413 };
414
415 flexcan2: can@5a8e0000 {
416 compatible = "fsl,imx8qm-flexcan";
417 reg = <0x5a8e0000 0x10000>;
418 interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>;
419 interrupt-parent = <&gic>;
420 /* CAN0 clock and PD is shared among all CAN instances as
421 * CAN1 shares CAN0's clock and to enable CAN0's clock it
422 * has to be powered on.
423 */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600424 clocks = <&can0_lpcg IMX_LPCG_CLK_4>,
425 <&can0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500426 clock-names = "ipg", "per";
427 assigned-clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>;
428 assigned-clock-rates = <40000000>;
429 power-domains = <&pd IMX_SC_R_CAN_1>;
430 /* SLSlice[4] */
431 fsl,clk-source = /bits/ 8 <0>;
432 fsl,scu-index = /bits/ 8 <1>;
433 status = "disabled";
434 };
435
436 flexcan3: can@5a8f0000 {
437 compatible = "fsl,imx8qm-flexcan";
438 reg = <0x5a8f0000 0x10000>;
439 interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>;
440 interrupt-parent = <&gic>;
441 /* CAN0 clock and PD is shared among all CAN instances as
442 * CAN2 shares CAN0's clock and to enable CAN0's clock it
443 * has to be powered on.
444 */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600445 clocks = <&can0_lpcg IMX_LPCG_CLK_4>,
446 <&can0_lpcg IMX_LPCG_CLK_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500447 clock-names = "ipg", "per";
448 assigned-clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>;
449 assigned-clock-rates = <40000000>;
450 power-domains = <&pd IMX_SC_R_CAN_2>;
451 /* SLSlice[4] */
452 fsl,clk-source = /bits/ 8 <0>;
453 fsl,scu-index = /bits/ 8 <2>;
454 status = "disabled";
455 };
456
Tom Rini6bb92fc2024-05-20 09:54:58 -0600457 edma3: dma-controller@5a9f0000 {
458 compatible = "fsl,imx8qm-edma";
459 reg = <0x5a9f0000 0x90000>;
460 #dma-cells = <3>;
461 dma-channels = <8>;
462 interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
463 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
464 <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
465 <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
466 <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
467 <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>,
468 <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>,
469 <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>;
470 power-domains = <&pd IMX_SC_R_DMA_3_CH0>,
471 <&pd IMX_SC_R_DMA_3_CH1>,
472 <&pd IMX_SC_R_DMA_3_CH2>,
473 <&pd IMX_SC_R_DMA_3_CH3>,
474 <&pd IMX_SC_R_DMA_3_CH4>,
475 <&pd IMX_SC_R_DMA_3_CH5>,
476 <&pd IMX_SC_R_DMA_3_CH6>,
477 <&pd IMX_SC_R_DMA_3_CH7>;
478 };
479
Tom Rini53633a82024-02-29 12:33:36 -0500480 i2c0_lpcg: clock-controller@5ac00000 {
481 compatible = "fsl,imx8qxp-lpcg";
482 reg = <0x5ac00000 0x10000>;
483 #clock-cells = <1>;
484 clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>,
485 <&dma_ipg_clk>;
486 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
487 clock-output-names = "i2c0_lpcg_clk",
488 "i2c0_lpcg_ipg_clk";
489 power-domains = <&pd IMX_SC_R_I2C_0>;
490 };
491
492 i2c1_lpcg: clock-controller@5ac10000 {
493 compatible = "fsl,imx8qxp-lpcg";
494 reg = <0x5ac10000 0x10000>;
495 #clock-cells = <1>;
496 clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>,
497 <&dma_ipg_clk>;
498 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
499 clock-output-names = "i2c1_lpcg_clk",
500 "i2c1_lpcg_ipg_clk";
501 power-domains = <&pd IMX_SC_R_I2C_1>;
502 };
503
504 i2c2_lpcg: clock-controller@5ac20000 {
505 compatible = "fsl,imx8qxp-lpcg";
506 reg = <0x5ac20000 0x10000>;
507 #clock-cells = <1>;
508 clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>,
509 <&dma_ipg_clk>;
510 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
511 clock-output-names = "i2c2_lpcg_clk",
512 "i2c2_lpcg_ipg_clk";
513 power-domains = <&pd IMX_SC_R_I2C_2>;
514 };
515
516 i2c3_lpcg: clock-controller@5ac30000 {
517 compatible = "fsl,imx8qxp-lpcg";
518 reg = <0x5ac30000 0x10000>;
519 #clock-cells = <1>;
520 clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>,
521 <&dma_ipg_clk>;
522 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
523 clock-output-names = "i2c3_lpcg_clk",
524 "i2c3_lpcg_ipg_clk";
525 power-domains = <&pd IMX_SC_R_I2C_3>;
526 };
527
528 adc0_lpcg: clock-controller@5ac80000 {
529 compatible = "fsl,imx8qxp-lpcg";
530 reg = <0x5ac80000 0x10000>;
531 #clock-cells = <1>;
532 clocks = <&clk IMX_SC_R_ADC_0 IMX_SC_PM_CLK_PER>,
533 <&dma_ipg_clk>;
534 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
535 clock-output-names = "adc0_lpcg_clk",
536 "adc0_lpcg_ipg_clk";
537 power-domains = <&pd IMX_SC_R_ADC_0>;
538 };
539
540 adc1_lpcg: clock-controller@5ac90000 {
541 compatible = "fsl,imx8qxp-lpcg";
542 reg = <0x5ac90000 0x10000>;
543 #clock-cells = <1>;
544 clocks = <&clk IMX_SC_R_ADC_1 IMX_SC_PM_CLK_PER>,
545 <&dma_ipg_clk>;
546 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
547 clock-output-names = "adc1_lpcg_clk",
548 "adc1_lpcg_ipg_clk";
549 power-domains = <&pd IMX_SC_R_ADC_1>;
550 };
551
552 can0_lpcg: clock-controller@5acd0000 {
553 compatible = "fsl,imx8qxp-lpcg";
554 reg = <0x5acd0000 0x10000>;
555 #clock-cells = <1>;
556 clocks = <&clk IMX_SC_R_CAN_0 IMX_SC_PM_CLK_PER>,
557 <&dma_ipg_clk>, <&dma_ipg_clk>;
558 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
559 clock-output-names = "can0_lpcg_pe_clk",
560 "can0_lpcg_ipg_clk",
561 "can0_lpcg_chi_clk";
562 power-domains = <&pd IMX_SC_R_CAN_0>;
563 };
564};