blob: 897cbb7b6742205b296ee4d5e0986474ed9bfe82 [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
Tom Rini6bb92fc2024-05-20 09:54:58 -06007#include <dt-bindings/clock/imx8-clock.h>
Tom Rini53633a82024-02-29 12:33:36 -05008#include <dt-bindings/clock/imx8-lpcg.h>
Tom Rini762f85b2024-07-20 11:15:10 -06009#include <dt-bindings/dma/fsl-edma.h>
Tom Rini53633a82024-02-29 12:33:36 -050010#include <dt-bindings/firmware/imx/rsrc.h>
11
12audio_ipg_clk: clock-audio-ipg {
13 compatible = "fixed-clock";
14 #clock-cells = <0>;
15 clock-frequency = <120000000>;
16 clock-output-names = "audio_ipg_clk";
17};
18
Tom Rini6bb92fc2024-05-20 09:54:58 -060019clk_ext_aud_mclk0: clock-ext-aud-mclk0 {
20 compatible = "fixed-clock";
21 #clock-cells = <0>;
22 clock-frequency = <0>;
23 clock-output-names = "ext_aud_mclk0";
24};
25
26clk_ext_aud_mclk1: clock-ext-aud-mclk1 {
27 compatible = "fixed-clock";
28 #clock-cells = <0>;
29 clock-frequency = <0>;
30 clock-output-names = "ext_aud_mclk1";
31};
32
33clk_esai0_rx_clk: clock-esai0-rx {
34 compatible = "fixed-clock";
35 #clock-cells = <0>;
36 clock-frequency = <0>;
37 clock-output-names = "esai0_rx_clk";
38};
39
40clk_esai0_rx_hf_clk: clock-esai0-rx-hf {
41 compatible = "fixed-clock";
42 #clock-cells = <0>;
43 clock-frequency = <0>;
44 clock-output-names = "esai0_rx_hf_clk";
45};
46
47clk_esai0_tx_clk: clock-esai0-tx {
48 compatible = "fixed-clock";
49 #clock-cells = <0>;
50 clock-frequency = <0>;
51 clock-output-names = "esai0_tx_clk";
52};
53
54clk_esai0_tx_hf_clk: clock-esai0-tx-hf {
55 compatible = "fixed-clock";
56 #clock-cells = <0>;
57 clock-frequency = <0>;
58 clock-output-names = "esai0_tx_hf_clk";
59};
60
61clk_spdif0_rx: clock-spdif0-rx {
62 compatible = "fixed-clock";
63 #clock-cells = <0>;
64 clock-frequency = <0>;
65 clock-output-names = "spdif0_rx";
66};
67
68clk_sai0_rx_bclk: clock-sai0-rx-bclk {
69 compatible = "fixed-clock";
70 #clock-cells = <0>;
71 clock-frequency = <0>;
72 clock-output-names = "sai0_rx_bclk";
73};
74
75clk_sai0_tx_bclk: clock-sai0-tx-bclk {
76 compatible = "fixed-clock";
77 #clock-cells = <0>;
78 clock-frequency = <0>;
79 clock-output-names = "sai0_tx_bclk";
80};
81
82clk_sai1_rx_bclk: clock-sai1-rx-bclk {
83 compatible = "fixed-clock";
84 #clock-cells = <0>;
85 clock-frequency = <0>;
86 clock-output-names = "sai1_rx_bclk";
87};
88
89clk_sai1_tx_bclk: clock-sai1-tx-bclk {
90 compatible = "fixed-clock";
91 #clock-cells = <0>;
92 clock-frequency = <0>;
93 clock-output-names = "sai1_tx_bclk";
94};
95
96clk_sai2_rx_bclk: clock-sai2-rx-bclk {
97 compatible = "fixed-clock";
98 #clock-cells = <0>;
99 clock-frequency = <0>;
100 clock-output-names = "sai2_rx_bclk";
101};
102
103clk_sai3_rx_bclk: clock-sai3-rx-bclk {
104 compatible = "fixed-clock";
105 #clock-cells = <0>;
106 clock-frequency = <0>;
107 clock-output-names = "sai3_rx_bclk";
108};
109
110clk_sai4_rx_bclk: clock-sai4-rx-bclk {
111 compatible = "fixed-clock";
112 #clock-cells = <0>;
113 clock-frequency = <0>;
114 clock-output-names = "sai4_rx_bclk";
115};
116
Tom Rini53633a82024-02-29 12:33:36 -0500117audio_subsys: bus@59000000 {
118 compatible = "simple-bus";
119 #address-cells = <1>;
120 #size-cells = <1>;
121 ranges = <0x59000000 0x0 0x59000000 0x1000000>;
122
Tom Rini762f85b2024-07-20 11:15:10 -0600123 asrc0: asrc@59000000 {
124 compatible = "fsl,imx8qm-asrc";
125 reg = <0x59000000 0x10000>;
126 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
127 clocks = <&asrc0_lpcg IMX_LPCG_CLK_0>,
128 <&asrc0_lpcg IMX_LPCG_CLK_0>,
129 <&aud_pll_div0_lpcg IMX_LPCG_CLK_4>,
130 <&aud_pll_div1_lpcg IMX_LPCG_CLK_4>,
131 <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
132 <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
133 <&clk_dummy>,
134 <&clk_dummy>,
135 <&clk_dummy>,
136 <&clk_dummy>,
137 <&clk_dummy>,
138 <&clk_dummy>,
139 <&clk_dummy>,
140 <&clk_dummy>,
141 <&clk_dummy>,
142 <&clk_dummy>,
143 <&clk_dummy>,
144 <&clk_dummy>,
145 <&clk_dummy>;
146 clock-names = "mem", "ipg",
147 "asrck_0", "asrck_1", "asrck_2", "asrck_3",
148 "asrck_4", "asrck_5", "asrck_6", "asrck_7",
149 "asrck_8", "asrck_9", "asrck_a", "asrck_b",
150 "asrck_c", "asrck_d", "asrck_e", "asrck_f",
151 "spba";
152 dmas = <&edma0 0 0 0>,
153 <&edma0 1 0 0>,
154 <&edma0 2 0 0>,
155 <&edma0 3 0 FSL_EDMA_RX>,
156 <&edma0 4 0 FSL_EDMA_RX>,
157 <&edma0 5 0 FSL_EDMA_RX>;
158 /* tx* is output channel of asrc, it is rx channel for eDMA */
159 dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc";
160 fsl,asrc-rate = <8000>;
161 fsl,asrc-width = <16>;
162 fsl,asrc-clk-map = <0>;
163 power-domains = <&pd IMX_SC_R_ASRC_0>;
164 status = "disabled";
165 };
166
167 esai0: esai@59010000 {
168 compatible = "fsl,imx8qm-esai";
169 reg = <0x59010000 0x10000>;
170 interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>;
171 clocks = <&esai0_lpcg IMX_LPCG_CLK_4>,
172 <&esai0_lpcg IMX_LPCG_CLK_0>,
173 <&esai0_lpcg IMX_LPCG_CLK_4>,
174 <&clk_dummy>;
175 clock-names = "core", "extal", "fsys", "spba";
176 dmas = <&edma0 6 0 FSL_EDMA_RX>, <&edma0 7 0 0>;
177 dma-names = "rx", "tx";
178 power-domains = <&pd IMX_SC_R_ESAI_0>;
179 status = "disabled";
180 };
181
182 spdif0: spdif@59020000 {
183 compatible = "fsl,imx8qm-spdif";
184 reg = <0x59020000 0x10000>;
185 interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, /* rx */
186 <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>; /* tx */
187 clocks = <&spdif0_lpcg IMX_LPCG_CLK_4>, /* core */
188 <&clk_dummy>, /* rxtx0 */
189 <&spdif0_lpcg IMX_LPCG_CLK_0>, /* rxtx1 */
190 <&clk_dummy>, /* rxtx2 */
191 <&clk_dummy>, /* rxtx3 */
192 <&clk_dummy>, /* rxtx4 */
193 <&audio_ipg_clk>, /* rxtx5 */
194 <&clk_dummy>, /* rxtx6 */
195 <&clk_dummy>, /* rxtx7 */
196 <&clk_dummy>; /* spba */
197 clock-names = "core", "rxtx0", "rxtx1", "rxtx2", "rxtx3", "rxtx4",
198 "rxtx5", "rxtx6", "rxtx7", "spba";
199 dmas = <&edma0 8 0 (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)>,
200 <&edma0 9 0 FSL_EDMA_MULTI_FIFO>;
201 dma-names = "rx", "tx";
202 power-domains = <&pd IMX_SC_R_SPDIF_0>;
203 status = "disabled";
204 };
205
Tom Rini6bb92fc2024-05-20 09:54:58 -0600206 sai0: sai@59040000 {
207 compatible = "fsl,imx8qm-sai";
208 reg = <0x59040000 0x10000>;
209 interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini762f85b2024-07-20 11:15:10 -0600210 clocks = <&sai0_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600211 <&clk_dummy>,
Tom Rini762f85b2024-07-20 11:15:10 -0600212 <&sai0_lpcg IMX_LPCG_CLK_0>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600213 <&clk_dummy>,
214 <&clk_dummy>;
215 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
216 dma-names = "rx", "tx";
217 dmas = <&edma0 12 0 1>, <&edma0 13 0 0>;
218 power-domains = <&pd IMX_SC_R_SAI_0>;
219 status = "disabled";
220 };
221
222 sai1: sai@59050000 {
223 compatible = "fsl,imx8qm-sai";
224 reg = <0x59050000 0x10000>;
225 interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini762f85b2024-07-20 11:15:10 -0600226 clocks = <&sai1_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600227 <&clk_dummy>,
Tom Rini762f85b2024-07-20 11:15:10 -0600228 <&sai1_lpcg IMX_LPCG_CLK_0>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600229 <&clk_dummy>,
230 <&clk_dummy>;
231 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
232 dma-names = "rx", "tx";
233 dmas = <&edma0 14 0 1>, <&edma0 15 0 0>;
234 power-domains = <&pd IMX_SC_R_SAI_1>;
235 status = "disabled";
236 };
237
238 sai2: sai@59060000 {
239 compatible = "fsl,imx8qm-sai";
240 reg = <0x59060000 0x10000>;
241 interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini762f85b2024-07-20 11:15:10 -0600242 clocks = <&sai2_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600243 <&clk_dummy>,
Tom Rini762f85b2024-07-20 11:15:10 -0600244 <&sai2_lpcg IMX_LPCG_CLK_0>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600245 <&clk_dummy>,
246 <&clk_dummy>;
247 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
248 dma-names = "rx";
249 dmas = <&edma0 16 0 1>;
250 power-domains = <&pd IMX_SC_R_SAI_2>;
251 status = "disabled";
252 };
253
254 sai3: sai@59070000 {
255 compatible = "fsl,imx8qm-sai";
256 reg = <0x59070000 0x10000>;
257 interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini762f85b2024-07-20 11:15:10 -0600258 clocks = <&sai3_lpcg IMX_LPCG_CLK_4>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600259 <&clk_dummy>,
Tom Rini762f85b2024-07-20 11:15:10 -0600260 <&sai3_lpcg IMX_LPCG_CLK_0>,
Tom Rini6bb92fc2024-05-20 09:54:58 -0600261 <&clk_dummy>,
262 <&clk_dummy>;
263 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
264 dma-names = "rx";
265 dmas = <&edma0 17 0 1>;
266 power-domains = <&pd IMX_SC_R_SAI_3>;
267 status = "disabled";
268 };
269
Tom Rini53633a82024-02-29 12:33:36 -0500270 edma0: dma-controller@591f0000 {
271 compatible = "fsl,imx8qm-edma";
272 reg = <0x591f0000 0x190000>;
273 #dma-cells = <3>;
Tom Rini53633a82024-02-29 12:33:36 -0500274 dma-channels = <24>;
275 dma-channel-mask = <0x5c0c00>;
276 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* 0 asrc 0 */
277 <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>, /* 1 */
278 <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>, /* 2 */
279 <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>, /* 3 */
280 <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>, /* 4 */
281 <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>, /* 5 */
282 <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, /* 6 esai0 */
283 <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, /* 7 */
284 <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>, /* 8 spdif0 */
285 <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>, /* 9 */
286 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 10 unused */
287 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 11 unused */
288 <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, /* 12 sai0 */
289 <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, /* 13 */
290 <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, /* 14 sai1 */
291 <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, /* 15 */
292 <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>, /* 16 sai2 */
293 <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>, /* 17 sai3 */
294 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 18 unused */
295 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 19 unused */
296 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 20 unused */
297 <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>, /* 21 */
298 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 22 unused */
299 <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>; /* 23 unused */
300 power-domains = <&pd IMX_SC_R_DMA_0_CH0>,
301 <&pd IMX_SC_R_DMA_0_CH1>,
302 <&pd IMX_SC_R_DMA_0_CH2>,
303 <&pd IMX_SC_R_DMA_0_CH3>,
304 <&pd IMX_SC_R_DMA_0_CH4>,
305 <&pd IMX_SC_R_DMA_0_CH5>,
306 <&pd IMX_SC_R_DMA_0_CH6>,
307 <&pd IMX_SC_R_DMA_0_CH7>,
308 <&pd IMX_SC_R_DMA_0_CH8>,
309 <&pd IMX_SC_R_DMA_0_CH9>,
310 <&pd IMX_SC_R_DMA_0_CH10>,
311 <&pd IMX_SC_R_DMA_0_CH11>,
312 <&pd IMX_SC_R_DMA_0_CH12>,
313 <&pd IMX_SC_R_DMA_0_CH13>,
314 <&pd IMX_SC_R_DMA_0_CH14>,
315 <&pd IMX_SC_R_DMA_0_CH15>,
316 <&pd IMX_SC_R_DMA_0_CH16>,
317 <&pd IMX_SC_R_DMA_0_CH17>,
318 <&pd IMX_SC_R_DMA_0_CH18>,
319 <&pd IMX_SC_R_DMA_0_CH19>,
320 <&pd IMX_SC_R_DMA_0_CH20>,
321 <&pd IMX_SC_R_DMA_0_CH21>,
322 <&pd IMX_SC_R_DMA_0_CH22>,
323 <&pd IMX_SC_R_DMA_0_CH23>;
324 };
325
Tom Rini762f85b2024-07-20 11:15:10 -0600326 asrc0_lpcg: clock-controller@59400000 {
327 compatible = "fsl,imx8qxp-lpcg";
328 reg = <0x59400000 0x10000>;
329 #clock-cells = <1>;
330 clocks = <&audio_ipg_clk>;
331 clock-indices = <IMX_LPCG_CLK_4>;
332 clock-output-names = "asrc0_lpcg_ipg_clk";
333 power-domains = <&pd IMX_SC_R_ASRC_0>;
334 };
335
336 esai0_lpcg: clock-controller@59410000 {
337 compatible = "fsl,imx8qxp-lpcg";
338 reg = <0x59410000 0x10000>;
339 #clock-cells = <1>;
340 clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>,
341 <&audio_ipg_clk>;
342 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
343 clock-output-names = "esai0_lpcg_extal_clk",
344 "esai0_lpcg_ipg_clk";
345 power-domains = <&pd IMX_SC_R_ESAI_0>;
346 };
347
348 spdif0_lpcg: clock-controller@59420000 {
349 compatible = "fsl,imx8qxp-lpcg";
350 reg = <0x59420000 0x10000>;
351 #clock-cells = <1>;
352 clocks = <&acm IMX_ADMA_ACM_SPDIF0_TX_CLK_SEL>,
353 <&audio_ipg_clk>;
354 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
355 clock-output-names = "spdif0_lpcg_tx_clk",
356 "spdif0_lpcg_gclkw";
357 power-domains = <&pd IMX_SC_R_SPDIF_0>;
358 };
359
Tom Rini6bb92fc2024-05-20 09:54:58 -0600360 sai0_lpcg: clock-controller@59440000 {
361 compatible = "fsl,imx8qxp-lpcg";
362 reg = <0x59440000 0x10000>;
363 #clock-cells = <1>;
364 clocks = <&acm IMX_ADMA_ACM_SAI0_MCLK_SEL>,
365 <&audio_ipg_clk>;
366 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
367 clock-output-names = "sai0_lpcg_mclk",
368 "sai0_lpcg_ipg_clk";
369 power-domains = <&pd IMX_SC_R_SAI_0>;
370 };
371
372 sai1_lpcg: clock-controller@59450000 {
373 compatible = "fsl,imx8qxp-lpcg";
374 reg = <0x59450000 0x10000>;
375 #clock-cells = <1>;
376 clocks = <&acm IMX_ADMA_ACM_SAI1_MCLK_SEL>,
377 <&audio_ipg_clk>;
378 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
379 clock-output-names = "sai1_lpcg_mclk",
380 "sai1_lpcg_ipg_clk";
381 power-domains = <&pd IMX_SC_R_SAI_1>;
382 };
383
384 sai2_lpcg: clock-controller@59460000 {
385 compatible = "fsl,imx8qxp-lpcg";
386 reg = <0x59460000 0x10000>;
387 #clock-cells = <1>;
388 clocks = <&acm IMX_ADMA_ACM_SAI2_MCLK_SEL>,
389 <&audio_ipg_clk>;
390 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
391 clock-output-names = "sai2_lpcg_mclk",
392 "sai2_lpcg_ipg_clk";
393 power-domains = <&pd IMX_SC_R_SAI_2>;
394 };
395
396 sai3_lpcg: clock-controller@59470000 {
397 compatible = "fsl,imx8qxp-lpcg";
398 reg = <0x59470000 0x10000>;
399 #clock-cells = <1>;
400 clocks = <&acm IMX_ADMA_ACM_SAI3_MCLK_SEL>,
401 <&audio_ipg_clk>;
402 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
403 clock-output-names = "sai3_lpcg_mclk",
404 "sai3_lpcg_ipg_clk";
405 power-domains = <&pd IMX_SC_R_SAI_3>;
406 };
407
Tom Rini53633a82024-02-29 12:33:36 -0500408 dsp_lpcg: clock-controller@59580000 {
409 compatible = "fsl,imx8qxp-lpcg";
410 reg = <0x59580000 0x10000>;
411 #clock-cells = <1>;
412 clocks = <&audio_ipg_clk>,
413 <&audio_ipg_clk>,
414 <&audio_ipg_clk>;
415 clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>,
416 <IMX_LPCG_CLK_7>;
417 clock-output-names = "dsp_lpcg_adb_clk",
418 "dsp_lpcg_ipg_clk",
419 "dsp_lpcg_core_clk";
420 power-domains = <&pd IMX_SC_R_DSP>;
421 };
422
423 dsp_ram_lpcg: clock-controller@59590000 {
424 compatible = "fsl,imx8qxp-lpcg";
425 reg = <0x59590000 0x10000>;
426 #clock-cells = <1>;
427 clocks = <&audio_ipg_clk>;
428 clock-indices = <IMX_LPCG_CLK_4>;
429 clock-output-names = "dsp_ram_lpcg_ipg_clk";
430 power-domains = <&pd IMX_SC_R_DSP_RAM>;
431 };
432
433 dsp: dsp@596e8000 {
434 compatible = "fsl,imx8qxp-dsp";
435 reg = <0x596e8000 0x88000>;
436 clocks = <&dsp_lpcg IMX_LPCG_CLK_5>,
437 <&dsp_ram_lpcg IMX_LPCG_CLK_4>,
438 <&dsp_lpcg IMX_LPCG_CLK_7>;
439 clock-names = "ipg", "ocram", "core";
440 power-domains = <&pd IMX_SC_R_MU_13A>,
441 <&pd IMX_SC_R_MU_13B>,
442 <&pd IMX_SC_R_DSP>,
443 <&pd IMX_SC_R_DSP_RAM>;
444 mbox-names = "txdb0", "txdb1",
445 "rxdb0", "rxdb1";
446 mboxes = <&lsio_mu13 2 0>,
447 <&lsio_mu13 2 1>,
448 <&lsio_mu13 3 0>,
449 <&lsio_mu13 3 1>;
450 memory-region = <&dsp_reserved>;
451 status = "disabled";
452 };
453
Tom Rini762f85b2024-07-20 11:15:10 -0600454 asrc1: asrc@59800000 {
455 compatible = "fsl,imx8qm-asrc";
456 reg = <0x59800000 0x10000>;
457 interrupts = <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>;
458 clocks = <&asrc1_lpcg IMX_LPCG_CLK_4>,
459 <&asrc1_lpcg IMX_LPCG_CLK_4>,
460 <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
461 <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
462 <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
463 <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
464 <&clk_dummy>,
465 <&clk_dummy>,
466 <&clk_dummy>,
467 <&clk_dummy>,
468 <&clk_dummy>,
469 <&clk_dummy>,
470 <&clk_dummy>,
471 <&clk_dummy>,
472 <&clk_dummy>,
473 <&clk_dummy>,
474 <&clk_dummy>,
475 <&clk_dummy>,
476 <&clk_dummy>;
477 clock-names = "mem", "ipg",
478 "asrck_0", "asrck_1", "asrck_2", "asrck_3",
479 "asrck_4", "asrck_5", "asrck_6", "asrck_7",
480 "asrck_8", "asrck_9", "asrck_a", "asrck_b",
481 "asrck_c", "asrck_d", "asrck_e", "asrck_f",
482 "spba";
483 dmas = <&edma1 0 0 0>,
484 <&edma1 1 0 0>,
485 <&edma1 2 0 0>,
486 <&edma1 3 0 FSL_EDMA_RX>,
487 <&edma1 4 0 FSL_EDMA_RX>,
488 <&edma1 5 0 FSL_EDMA_RX>;
489 /* tx* is output channel of asrc, it is rx channel for eDMA */
490 dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc";
491 fsl,asrc-rate = <8000>;
492 fsl,asrc-width = <16>;
493 fsl,asrc-clk-map = <1>;
494 power-domains = <&pd IMX_SC_R_ASRC_1>;
495 status = "disabled";
496 };
497
498 sai4: sai@59820000 {
499 compatible = "fsl,imx8qm-sai";
500 reg = <0x59820000 0x10000>;
501 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
502 clocks = <&sai4_lpcg IMX_LPCG_CLK_4>,
503 <&clk_dummy>,
504 <&sai4_lpcg IMX_LPCG_CLK_0>,
505 <&clk_dummy>,
506 <&clk_dummy>;
507 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
508 dmas = <&edma1 8 0 FSL_EDMA_RX>, <&edma1 9 0 0>;
509 dma-names = "rx", "tx";
510 power-domains = <&pd IMX_SC_R_SAI_4>;
511 status = "disabled";
512 };
513
514 sai5: sai@59830000 {
515 compatible = "fsl,imx8qm-sai";
516 reg = <0x59830000 0x10000>;
517 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
518 clocks = <&sai5_lpcg IMX_LPCG_CLK_4>,
519 <&clk_dummy>,
520 <&sai5_lpcg IMX_LPCG_CLK_0>,
521 <&clk_dummy>,
522 <&clk_dummy>;
523 clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
524 dmas = <&edma1 10 0 0>;
525 dma-names = "tx";
526 power-domains = <&pd IMX_SC_R_SAI_5>;
527 status = "disabled";
528 };
529
530 amix: amix@59840000 {
531 compatible = "fsl,imx8qm-audmix";
532 reg = <0x59840000 0x10000>;
533 clocks = <&amix_lpcg IMX_LPCG_CLK_0>;
534 clock-names = "ipg";
535 power-domains = <&pd IMX_SC_R_AMIX>;
536 dais = <&sai4>, <&sai5>;
537 status = "disabled";
538 };
539
540 mqs: mqs@59850000 {
541 compatible = "fsl,imx8qm-mqs";
542 reg = <0x59850000 0x10000>;
543 clocks = <&mqs0_lpcg IMX_LPCG_CLK_4>, <&mqs0_lpcg IMX_LPCG_CLK_0>;
544 clock-names = "mclk", "core";
545 power-domains = <&pd IMX_SC_R_MQS_0>;
546 status = "disabled";
547 };
548
Tom Rini53633a82024-02-29 12:33:36 -0500549 edma1: dma-controller@599f0000 {
550 compatible = "fsl,imx8qm-edma";
551 reg = <0x599f0000 0xc0000>;
552 #dma-cells = <3>;
Tom Rini53633a82024-02-29 12:33:36 -0500553 dma-channels = <11>;
554 dma-channel-mask = <0xc0>;
555 interrupts = <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>, /* 0 asrc 1 */
556 <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>, /* 1 */
557 <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>, /* 2 */
558 <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>, /* 3 */
559 <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>, /* 4 */
560 <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>, /* 5 */
561 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 6 unused */
562 <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* 7 unused */
563 <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, /* sai4 */
564 <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
565 <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; /* sai5 */
566 power-domains = <&pd IMX_SC_R_DMA_1_CH0>,
567 <&pd IMX_SC_R_DMA_1_CH1>,
568 <&pd IMX_SC_R_DMA_1_CH2>,
569 <&pd IMX_SC_R_DMA_1_CH3>,
570 <&pd IMX_SC_R_DMA_1_CH4>,
571 <&pd IMX_SC_R_DMA_1_CH5>,
572 <&pd IMX_SC_R_DMA_1_CH6>,
573 <&pd IMX_SC_R_DMA_1_CH7>,
574 <&pd IMX_SC_R_DMA_1_CH8>,
575 <&pd IMX_SC_R_DMA_1_CH9>,
576 <&pd IMX_SC_R_DMA_1_CH10>;
577 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600578
579 aud_rec0_lpcg: clock-controller@59d00000 {
580 compatible = "fsl,imx8qxp-lpcg";
581 reg = <0x59d00000 0x10000>;
582 #clock-cells = <1>;
583 clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>;
584 clock-indices = <IMX_LPCG_CLK_0>;
585 clock-output-names = "aud_rec_clk0_lpcg_clk";
586 power-domains = <&pd IMX_SC_R_AUDIO_PLL_0>;
587 };
588
589 aud_rec1_lpcg: clock-controller@59d10000 {
590 compatible = "fsl,imx8qxp-lpcg";
591 reg = <0x59d10000 0x10000>;
592 #clock-cells = <1>;
593 clocks = <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>;
594 clock-indices = <IMX_LPCG_CLK_0>;
595 clock-output-names = "aud_rec_clk1_lpcg_clk";
596 power-domains = <&pd IMX_SC_R_AUDIO_PLL_1>;
597 };
598
599 aud_pll_div0_lpcg: clock-controller@59d20000 {
600 compatible = "fsl,imx8qxp-lpcg";
601 reg = <0x59d20000 0x10000>;
602 #clock-cells = <1>;
603 clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>;
604 clock-indices = <IMX_LPCG_CLK_0>;
605 clock-output-names = "aud_pll_div_clk0_lpcg_clk";
606 power-domains = <&pd IMX_SC_R_AUDIO_PLL_0>;
607 };
608
609 aud_pll_div1_lpcg: clock-controller@59d30000 {
610 compatible = "fsl,imx8qxp-lpcg";
611 reg = <0x59d30000 0x10000>;
612 #clock-cells = <1>;
613 clocks = <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>;
614 clock-indices = <IMX_LPCG_CLK_0>;
615 clock-output-names = "aud_pll_div_clk1_lpcg_clk";
616 power-domains = <&pd IMX_SC_R_AUDIO_PLL_1>;
617 };
618
619 mclkout0_lpcg: clock-controller@59d50000 {
620 compatible = "fsl,imx8qxp-lpcg";
621 reg = <0x59d50000 0x10000>;
622 #clock-cells = <1>;
623 clocks = <&acm IMX_ADMA_ACM_MCLKOUT0_SEL>;
624 clock-indices = <IMX_LPCG_CLK_0>;
625 clock-output-names = "mclkout0_lpcg_clk";
626 power-domains = <&pd IMX_SC_R_MCLK_OUT_0>;
627 };
628
629 mclkout1_lpcg: clock-controller@59d60000 {
630 compatible = "fsl,imx8qxp-lpcg";
631 reg = <0x59d60000 0x10000>;
632 #clock-cells = <1>;
633 clocks = <&acm IMX_ADMA_ACM_MCLKOUT1_SEL>;
634 clock-indices = <IMX_LPCG_CLK_0>;
635 clock-output-names = "mclkout1_lpcg_clk";
636 power-domains = <&pd IMX_SC_R_MCLK_OUT_1>;
637 };
638
639 acm: acm@59e00000 {
640 compatible = "fsl,imx8qxp-acm";
641 reg = <0x59e00000 0x1d0000>;
642 #clock-cells = <1>;
643 power-domains = <&pd IMX_SC_R_AUDIO_CLK_0>,
644 <&pd IMX_SC_R_AUDIO_CLK_1>,
645 <&pd IMX_SC_R_MCLK_OUT_0>,
646 <&pd IMX_SC_R_MCLK_OUT_1>,
647 <&pd IMX_SC_R_AUDIO_PLL_0>,
648 <&pd IMX_SC_R_AUDIO_PLL_1>,
649 <&pd IMX_SC_R_ASRC_0>,
650 <&pd IMX_SC_R_ASRC_1>,
651 <&pd IMX_SC_R_ESAI_0>,
652 <&pd IMX_SC_R_SAI_0>,
653 <&pd IMX_SC_R_SAI_1>,
654 <&pd IMX_SC_R_SAI_2>,
655 <&pd IMX_SC_R_SAI_3>,
656 <&pd IMX_SC_R_SAI_4>,
657 <&pd IMX_SC_R_SAI_5>,
658 <&pd IMX_SC_R_SPDIF_0>,
659 <&pd IMX_SC_R_MQS_0>;
660 clocks = <&aud_rec0_lpcg IMX_LPCG_CLK_0>,
661 <&aud_rec1_lpcg IMX_LPCG_CLK_0>,
662 <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
663 <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
664 <&clk_ext_aud_mclk0>,
665 <&clk_ext_aud_mclk1>,
666 <&clk_esai0_rx_clk>,
667 <&clk_esai0_rx_hf_clk>,
668 <&clk_esai0_tx_clk>,
669 <&clk_esai0_tx_hf_clk>,
670 <&clk_spdif0_rx>,
671 <&clk_sai0_rx_bclk>,
672 <&clk_sai0_tx_bclk>,
673 <&clk_sai1_rx_bclk>,
674 <&clk_sai1_tx_bclk>,
675 <&clk_sai2_rx_bclk>,
676 <&clk_sai3_rx_bclk>,
677 <&clk_sai4_rx_bclk>;
678 clock-names = "aud_rec_clk0_lpcg_clk",
679 "aud_rec_clk1_lpcg_clk",
680 "aud_pll_div_clk0_lpcg_clk",
681 "aud_pll_div_clk1_lpcg_clk",
682 "ext_aud_mclk0",
683 "ext_aud_mclk1",
684 "esai0_rx_clk",
685 "esai0_rx_hf_clk",
686 "esai0_tx_clk",
687 "esai0_tx_hf_clk",
688 "spdif0_rx",
689 "sai0_rx_bclk",
690 "sai0_tx_bclk",
691 "sai1_rx_bclk",
692 "sai1_tx_bclk",
693 "sai2_rx_bclk",
694 "sai3_rx_bclk",
695 "sai4_rx_bclk";
696 };
Tom Rini762f85b2024-07-20 11:15:10 -0600697
698 asrc1_lpcg: clock-controller@59c00000 {
699 compatible = "fsl,imx8qxp-lpcg";
700 reg = <0x59c00000 0x10000>;
701 #clock-cells = <1>;
702 clocks = <&audio_ipg_clk>;
703 clock-indices = <IMX_LPCG_CLK_4>;
704 clock-output-names = "asrc1_lpcg_ipg_clk";
705 power-domains = <&pd IMX_SC_R_ASRC_1>;
706 };
707
708 sai4_lpcg: clock-controller@59c20000 {
709 compatible = "fsl,imx8qxp-lpcg";
710 reg = <0x59c20000 0x10000>;
711 #clock-cells = <1>;
712 clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>,
713 <&audio_ipg_clk>;
714 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
715 clock-output-names = "sai4_lpcg_mclk",
716 "sai4_lpcg_ipg_clk";
717 power-domains = <&pd IMX_SC_R_SAI_4>;
718 };
719
720 sai5_lpcg: clock-controller@59c30000 {
721 compatible = "fsl,imx8qxp-lpcg";
722 reg = <0x59c30000 0x10000>;
723 #clock-cells = <1>;
724 clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>,
725 <&audio_ipg_clk>;
726 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
727 clock-output-names = "sai5_lpcg_mclk",
728 "sai5_lpcg_ipg_clk";
729 power-domains = <&pd IMX_SC_R_SAI_5>;
730 };
731
732 amix_lpcg: clock-controller@59c40000 {
733 compatible = "fsl,imx8qxp-lpcg";
734 reg = <0x59c40000 0x10000>;
735 #clock-cells = <1>;
736 clocks = <&audio_ipg_clk>;
737 clock-indices = <IMX_LPCG_CLK_0>;
738 clock-output-names = "amix_lpcg_ipg_clk";
739 power-domains = <&pd IMX_SC_R_AMIX>;
740 };
741
742 mqs0_lpcg: clock-controller@59c50000 {
743 compatible = "fsl,imx8qxp-lpcg";
744 reg = <0x59c50000 0x10000>;
745 #clock-cells = <1>;
746 clocks = <&acm IMX_ADMA_ACM_MQS_TX_CLK_SEL>,
747 <&audio_ipg_clk>;
748 clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
749 clock-output-names = "mqs0_lpcg_mclk",
750 "mqs0_lpcg_ipg_clk";
751 power-domains = <&pd IMX_SC_R_MQS_0>;
752 };
Tom Rini53633a82024-02-29 12:33:36 -0500753};