| // SPDX-License-Identifier: GPL-2.0+ |
| /* |
| * Copyright 2024 NXP |
| * Dong Aisheng <aisheng.dong@nxp.com> |
| */ |
| |
| /delete-node/ &acm; |
| /delete-node/ &sai4; |
| /delete-node/ &sai5; |
| /delete-node/ &sai4_lpcg; |
| /delete-node/ &sai5_lpcg; |
| |
| &amix { |
| dais = <&sai6>, <&sai7>; |
| }; |
| |
| &asrc0 { |
| clocks = <&asrc0_lpcg IMX_LPCG_CLK_0>, |
| <&asrc0_lpcg IMX_LPCG_CLK_2>, |
| <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>, |
| <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>, |
| <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>, |
| <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_ASRC_0>; |
| }; |
| |
| &asrc0_lpcg { |
| clocks = <&audio_ipg_clk>, |
| <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_2>; |
| clock-output-names = "asrc0_lpcg_ipg_clk", "asrc0_lpcg_mem_clk"; |
| }; |
| |
| &asrc1 { |
| clocks = <&asrc1_lpcg IMX_LPCG_CLK_0>, |
| <&asrc1_lpcg IMX_LPCG_CLK_2>, |
| <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>, |
| <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>, |
| <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>, |
| <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_ASRC_1>; |
| }; |
| |
| &asrc1_lpcg { |
| clocks = <&audio_ipg_clk>, <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_2>; |
| clock-output-names = "asrc1_lpcg_ipg_clk", "asrc1_lpcg_mem_clk"; |
| }; |
| |
| &audio_subsys { |
| |
| sai4: sai@59080000 { |
| compatible = "fsl,imx8qm-sai"; |
| reg = <0x59080000 0x10000>; |
| interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&sai4_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai4_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; |
| dma-names = "rx"; |
| dmas = <&edma0 18 0 1>; |
| fsl,dataline = <0 0xf 0x0>; |
| power-domains = <&pd IMX_SC_R_SAI_4>; |
| status = "disabled"; |
| }; |
| |
| sai5: sai@59090000 { |
| compatible = "fsl,imx8qm-sai"; |
| reg = <0x59090000 0x10000>; |
| interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&sai5_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai5_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; |
| dma-names = "tx"; |
| dmas = <&edma0 19 0 0>; |
| fsl,dataline = <0 0x0 0xf>; |
| power-domains = <&pd IMX_SC_R_SAI_5>; |
| status = "disabled"; |
| }; |
| |
| sai4_lpcg: clock-controller@59480000 { |
| compatible = "fsl,imx8qxp-lpcg"; |
| reg = <0x59480000 0x10000>; |
| #clock-cells = <1>; |
| clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>, |
| <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai4_lpcg_mclk", "sai4_lpcg_ipg_clk"; |
| power-domains = <&pd IMX_SC_R_SAI_4>; |
| status = "disabled"; |
| }; |
| |
| sai5_lpcg: clock-controller@59490000 { |
| compatible = "fsl,imx8qxp-lpcg"; |
| reg = <0x59490000 0x10000>; |
| #clock-cells = <1>; |
| clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>, |
| <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai5_lpcg_mclk", "sai5_lpcg_ipg_clk"; |
| power-domains = <&pd IMX_SC_R_SAI_5>; |
| status = "disabled"; |
| }; |
| |
| esai1: esai@59810000 { |
| compatible = "fsl,imx8qm-esai"; |
| reg = <0x59810000 0x10000>; |
| interrupts = <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&esai1_lpcg IMX_LPCG_CLK_0>, |
| <&esai1_lpcg IMX_LPCG_CLK_4>, |
| <&esai1_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>; |
| clock-names = "core", "extal", "fsys", "spba"; |
| dmas = <&edma1 6 0 1>, <&edma1 7 0 0>; |
| dma-names = "rx", "tx"; |
| power-domains = <&pd IMX_SC_R_ESAI_1>; |
| status = "disabled"; |
| }; |
| |
| sai6: sai@59820000 { |
| compatible = "fsl,imx8qm-sai"; |
| reg = <0x59820000 0x10000>; |
| interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&sai6_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai6_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; |
| dma-names = "rx", "tx"; |
| dmas = <&edma1 8 0 1>, <&edma1 9 0 0>; |
| power-domains = <&pd IMX_SC_R_SAI_6>; |
| status = "disabled"; |
| }; |
| |
| sai7: sai@59830000 { |
| compatible = "fsl,imx8qm-sai"; |
| reg = <0x59830000 0x10000>; |
| interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&sai7_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai7_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; |
| dma-names = "tx"; |
| dmas = <&edma1 10 0 0>; |
| power-domains = <&pd IMX_SC_R_SAI_7>; |
| status = "disabled"; |
| }; |
| |
| esai1_lpcg: clock-controller@59c10000 { |
| compatible = "fsl,imx8qxp-lpcg"; |
| reg = <0x59c10000 0x10000>; |
| #clock-cells = <1>; |
| clocks = <&acm IMX_ADMA_ACM_ESAI1_MCLK_SEL>, |
| <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "esai1_lpcg_extal_clk", "esai1_lpcg_ipg_clk"; |
| power-domains = <&pd IMX_SC_R_ESAI_1>; |
| }; |
| |
| sai6_lpcg: clock-controller@59c20000 { |
| compatible = "fsl,imx8qxp-lpcg"; |
| reg = <0x59c20000 0x10000>; |
| #clock-cells = <1>; |
| clocks = <&acm IMX_ADMA_ACM_SAI6_MCLK_SEL>, |
| <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai6_lpcg_mclk", "sai6_lpcg_ipg_clk"; |
| power-domains = <&pd IMX_SC_R_SAI_6>; |
| }; |
| |
| sai7_lpcg: clock-controller@59c30000 { |
| compatible = "fsl,imx8qxp-lpcg"; |
| reg = <0x59c30000 0x10000>; |
| #clock-cells = <1>; |
| clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>, |
| <&audio_ipg_clk>; |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai7_lpcg_mclk", "sai7_lpcg_ipg_clk"; |
| power-domains = <&pd IMX_SC_R_SAI_7>; |
| }; |
| |
| acm: acm@59e00000 { |
| compatible = "fsl,imx8qm-acm"; |
| reg = <0x59e00000 0x1d0000>; |
| #clock-cells = <1>; |
| power-domains = <&pd IMX_SC_R_AUDIO_CLK_0>, |
| <&pd IMX_SC_R_AUDIO_CLK_1>, |
| <&pd IMX_SC_R_MCLK_OUT_0>, |
| <&pd IMX_SC_R_MCLK_OUT_1>, |
| <&pd IMX_SC_R_AUDIO_PLL_0>, |
| <&pd IMX_SC_R_AUDIO_PLL_1>, |
| <&pd IMX_SC_R_ASRC_0>, |
| <&pd IMX_SC_R_ASRC_1>, |
| <&pd IMX_SC_R_ESAI_0>, |
| <&pd IMX_SC_R_ESAI_1>, |
| <&pd IMX_SC_R_SAI_0>, |
| <&pd IMX_SC_R_SAI_1>, |
| <&pd IMX_SC_R_SAI_2>, |
| <&pd IMX_SC_R_SAI_3>, |
| <&pd IMX_SC_R_SAI_4>, |
| <&pd IMX_SC_R_SAI_5>, |
| <&pd IMX_SC_R_SAI_6>, |
| <&pd IMX_SC_R_SAI_7>, |
| <&pd IMX_SC_R_SPDIF_0>, |
| <&pd IMX_SC_R_SPDIF_1>, |
| <&pd IMX_SC_R_MQS_0>; |
| clocks = <&aud_rec0_lpcg IMX_LPCG_CLK_0>, |
| <&aud_rec1_lpcg IMX_LPCG_CLK_0>, |
| <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>, |
| <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>, |
| <&clk_mlb_clk>, |
| <&clk_hdmi_rx_mclk>, |
| <&clk_ext_aud_mclk0>, |
| <&clk_ext_aud_mclk1>, |
| <&clk_esai0_rx_clk>, |
| <&clk_esai0_rx_hf_clk>, |
| <&clk_esai0_tx_clk>, |
| <&clk_esai0_tx_hf_clk>, |
| <&clk_esai1_rx_clk>, |
| <&clk_esai1_rx_hf_clk>, |
| <&clk_esai1_tx_clk>, |
| <&clk_esai1_tx_hf_clk>, |
| <&clk_spdif0_rx>, |
| <&clk_spdif0_rx>, |
| <&clk_sai0_rx_bclk>, |
| <&clk_sai0_tx_bclk>, |
| <&clk_sai1_rx_bclk>, |
| <&clk_sai1_tx_bclk>, |
| <&clk_sai2_rx_bclk>, |
| <&clk_sai3_rx_bclk>, |
| <&clk_sai4_rx_bclk>, |
| <&clk_sai5_rx_bclk>, |
| <&clk_sai6_rx_bclk>; |
| clock-names = "aud_rec_clk0_lpcg_clk", |
| "aud_rec_clk1_lpcg_clk", |
| "aud_pll_div_clk0_lpcg_clk", |
| "aud_pll_div_clk1_lpcg_clk", |
| "mlb_clk", |
| "hdmi_rx_mclk", |
| "ext_aud_mclk0", |
| "ext_aud_mclk1", |
| "esai0_rx_clk", |
| "esai0_rx_hf_clk", |
| "esai0_tx_clk", |
| "esai0_tx_hf_clk", |
| "esai1_rx_clk", |
| "esai1_rx_hf_clk", |
| "esai1_tx_clk", |
| "esai1_tx_hf_clk", |
| "spdif0_rx", |
| "spdif1_rx", |
| "sai0_rx_bclk", |
| "sai0_tx_bclk", |
| "sai1_rx_bclk", |
| "sai1_tx_bclk", |
| "sai2_rx_bclk", |
| "sai3_rx_bclk", |
| "sai4_rx_bclk", |
| "sai5_tx_bclk", |
| "sai6_rx_bclk"; |
| }; |
| }; |
| |
| &dsp_lpcg { |
| status = "disabled"; |
| }; |
| |
| &dsp_ram_lpcg { |
| status = "disabled"; |
| }; |
| |
| /* edma2 called in imx8qm RM with the same address in edma0 of imx8qxp */ |
| &edma0{ |
| reg = <0x591f0000 0x150000>; |
| dma-channels = <20>; |
| dma-channel-mask = <0>; |
| interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* asrc0 */ |
| <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, /* esai0 */ |
| <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>, /* spdif0 */ |
| <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>, /* spdif1 */ |
| <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, /* sai0 */ |
| <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, /* sai1 */ |
| <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>, /* sai2 */ |
| <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>, /* sai3 */ |
| <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* sai4 */ |
| <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; /* sai5 */ |
| power-domains = <&pd IMX_SC_R_DMA_2_CH0>, |
| <&pd IMX_SC_R_DMA_2_CH1>, |
| <&pd IMX_SC_R_DMA_2_CH2>, |
| <&pd IMX_SC_R_DMA_2_CH3>, |
| <&pd IMX_SC_R_DMA_2_CH4>, |
| <&pd IMX_SC_R_DMA_2_CH5>, |
| <&pd IMX_SC_R_DMA_2_CH6>, |
| <&pd IMX_SC_R_DMA_2_CH7>, |
| <&pd IMX_SC_R_DMA_2_CH8>, |
| <&pd IMX_SC_R_DMA_2_CH9>, |
| <&pd IMX_SC_R_DMA_2_CH10>, |
| <&pd IMX_SC_R_DMA_2_CH11>, |
| <&pd IMX_SC_R_DMA_2_CH12>, |
| <&pd IMX_SC_R_DMA_2_CH13>, |
| <&pd IMX_SC_R_DMA_2_CH14>, |
| <&pd IMX_SC_R_DMA_2_CH15>, |
| <&pd IMX_SC_R_DMA_2_CH16>, |
| <&pd IMX_SC_R_DMA_2_CH17>, |
| <&pd IMX_SC_R_DMA_2_CH18>, |
| <&pd IMX_SC_R_DMA_2_CH19>; |
| }; |
| |
| /* edma3 called in imx8qm RM with the same address in edma1 of imx8qxp */ |
| &edma1{ |
| reg = <0x599f0000 0xc0000>; |
| dma-channels = <11>; |
| dma-channel-mask = <0xc0>; |
| interrupts = <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>, /* asrc1 */ |
| <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* no used */ |
| <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* no used */ |
| <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, /* sai6 */ |
| <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; /* sai7 */ |
| power-domains = <&pd IMX_SC_R_DMA_3_CH0>, |
| <&pd IMX_SC_R_DMA_3_CH1>, |
| <&pd IMX_SC_R_DMA_3_CH2>, |
| <&pd IMX_SC_R_DMA_3_CH3>, |
| <&pd IMX_SC_R_DMA_3_CH4>, |
| <&pd IMX_SC_R_DMA_3_CH5>, |
| <&pd IMX_SC_R_DMA_3_CH6>, |
| <&pd IMX_SC_R_DMA_3_CH7>, |
| <&pd IMX_SC_R_DMA_3_CH8>, |
| <&pd IMX_SC_R_DMA_3_CH9>, |
| <&pd IMX_SC_R_DMA_3_CH10>; |
| }; |
| |
| &esai0 { |
| clocks = <&esai0_lpcg IMX_LPCG_CLK_0>, |
| <&esai0_lpcg IMX_LPCG_CLK_4>, |
| <&esai0_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_ESAI_0>; |
| }; |
| |
| &esai0_lpcg { |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "esai0_lpcg_extal_clk", "esai0_lpcg_ipg_clk"; |
| }; |
| |
| &mqs0_lpcg { |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "mqs0_lpcg_mclk", "mqs0_lpcg_ipg_clk"; |
| }; |
| |
| &sai0 { |
| clocks = <&sai0_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai0_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_SAI_0>; |
| }; |
| |
| &sai0_lpcg { |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai0_lpcg_mclk", "sai0_lpcg_ipg_clk"; |
| }; |
| |
| &sai1 { |
| clocks = <&sai1_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai1_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_SAI_1>; |
| }; |
| |
| &sai1_lpcg { |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai1_lpcg_mclk", "sai1_lpcg_ipg_clk"; |
| }; |
| |
| &sai2 { |
| clocks = <&sai2_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai2_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_SAI_2>; |
| }; |
| |
| &sai2_lpcg { |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai2_lpcg_mclk", "sai2_lpcg_ipg_clk"; |
| }; |
| |
| &sai3 { |
| clocks = <&sai3_lpcg IMX_LPCG_CLK_0>, |
| <&clk_dummy>, |
| <&sai3_lpcg IMX_LPCG_CLK_4>, |
| <&clk_dummy>, |
| <&clk_dummy>; |
| power-domains = <&pd IMX_SC_R_SAI_3>; |
| }; |
| |
| &sai3_lpcg { |
| clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>; |
| clock-output-names = "sai3_lpcg_mclk", "sai3_lpcg_ipg_clk"; |
| }; |
| |
| &spdif0 { |
| clocks = <&spdif0_lpcg IMX_LPCG_CLK_4>, /* core */ |
| <&clk_dummy>, /* rxtx0 */ |
| <&spdif0_lpcg IMX_LPCG_CLK_5>, /* rxtx1 */ |
| <&clk_dummy>, /* rxtx2 */ |
| <&clk_dummy>, /* rxtx3 */ |
| <&clk_dummy>, /* rxtx4 */ |
| <&audio_ipg_clk>, /* rxtx5 */ |
| <&clk_dummy>, /* rxtx6 */ |
| <&clk_dummy>, /* rxtx7 */ |
| <&clk_dummy>; /* spba */ |
| power-domains = <&pd IMX_SC_R_SPDIF_0>; |
| }; |
| |
| &spdif0_lpcg { |
| clock-indices = <IMX_LPCG_CLK_5>, <IMX_LPCG_CLK_4>; |
| clock-output-names = "spdif0_lpcg_tx_clk", "spdif0_lpcg_gclkw"; |
| }; |