// SPDX-License-Identifier: GPL-2.0+ /* * Copyright 2018-2019 NXP * Dong Aisheng */ #include #include #include #include audio_ipg_clk: clock-audio-ipg { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <120000000>; clock-output-names = "audio_ipg_clk"; }; clk_ext_aud_mclk0: clock-ext-aud-mclk0 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "ext_aud_mclk0"; }; clk_ext_aud_mclk1: clock-ext-aud-mclk1 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "ext_aud_mclk1"; }; clk_esai0_rx_clk: clock-esai0-rx { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "esai0_rx_clk"; }; clk_esai0_rx_hf_clk: clock-esai0-rx-hf { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "esai0_rx_hf_clk"; }; clk_esai0_tx_clk: clock-esai0-tx { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "esai0_tx_clk"; }; clk_esai0_tx_hf_clk: clock-esai0-tx-hf { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "esai0_tx_hf_clk"; }; clk_spdif0_rx: clock-spdif0-rx { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "spdif0_rx"; }; clk_sai0_rx_bclk: clock-sai0-rx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai0_rx_bclk"; }; clk_sai0_tx_bclk: clock-sai0-tx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai0_tx_bclk"; }; clk_sai1_rx_bclk: clock-sai1-rx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai1_rx_bclk"; }; clk_sai1_tx_bclk: clock-sai1-tx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai1_tx_bclk"; }; clk_sai2_rx_bclk: clock-sai2-rx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai2_rx_bclk"; }; clk_sai3_rx_bclk: clock-sai3-rx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai3_rx_bclk"; }; clk_sai4_rx_bclk: clock-sai4-rx-bclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <0>; clock-output-names = "sai4_rx_bclk"; }; audio_subsys: bus@59000000 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x59000000 0x0 0x59000000 0x1000000>; asrc0: asrc@59000000 { compatible = "fsl,imx8qm-asrc"; reg = <0x59000000 0x10000>; interrupts = ; clocks = <&asrc0_lpcg IMX_LPCG_CLK_0>, <&asrc0_lpcg IMX_LPCG_CLK_0>, <&aud_pll_div0_lpcg IMX_LPCG_CLK_4>, <&aud_pll_div1_lpcg IMX_LPCG_CLK_4>, <&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>; clock-names = "mem", "ipg", "asrck_0", "asrck_1", "asrck_2", "asrck_3", "asrck_4", "asrck_5", "asrck_6", "asrck_7", "asrck_8", "asrck_9", "asrck_a", "asrck_b", "asrck_c", "asrck_d", "asrck_e", "asrck_f", "spba"; dmas = <&edma0 0 0 0>, <&edma0 1 0 0>, <&edma0 2 0 0>, <&edma0 3 0 FSL_EDMA_RX>, <&edma0 4 0 FSL_EDMA_RX>, <&edma0 5 0 FSL_EDMA_RX>; /* tx* is output channel of asrc, it is rx channel for eDMA */ dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc"; fsl,asrc-rate = <8000>; fsl,asrc-width = <16>; fsl,asrc-clk-map = <0>; power-domains = <&pd IMX_SC_R_ASRC_0>; status = "disabled"; }; esai0: esai@59010000 { compatible = "fsl,imx8qm-esai"; reg = <0x59010000 0x10000>; interrupts = ; clocks = <&esai0_lpcg IMX_LPCG_CLK_4>, <&esai0_lpcg IMX_LPCG_CLK_0>, <&esai0_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>; clock-names = "core", "extal", "fsys", "spba"; dmas = <&edma0 6 0 FSL_EDMA_RX>, <&edma0 7 0 0>; dma-names = "rx", "tx"; power-domains = <&pd IMX_SC_R_ESAI_0>; status = "disabled"; }; spdif0: spdif@59020000 { compatible = "fsl,imx8qm-spdif"; reg = <0x59020000 0x10000>; interrupts = , /* rx */ ; /* tx */ clocks = <&spdif0_lpcg IMX_LPCG_CLK_4>, /* core */ <&clk_dummy>, /* rxtx0 */ <&spdif0_lpcg IMX_LPCG_CLK_0>, /* rxtx1 */ <&clk_dummy>, /* rxtx2 */ <&clk_dummy>, /* rxtx3 */ <&clk_dummy>, /* rxtx4 */ <&audio_ipg_clk>, /* rxtx5 */ <&clk_dummy>, /* rxtx6 */ <&clk_dummy>, /* rxtx7 */ <&clk_dummy>; /* spba */ clock-names = "core", "rxtx0", "rxtx1", "rxtx2", "rxtx3", "rxtx4", "rxtx5", "rxtx6", "rxtx7", "spba"; dmas = <&edma0 8 0 (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)>, <&edma0 9 0 FSL_EDMA_MULTI_FIFO>; dma-names = "rx", "tx"; power-domains = <&pd IMX_SC_R_SPDIF_0>; status = "disabled"; }; sai0: sai@59040000 { compatible = "fsl,imx8qm-sai"; reg = <0x59040000 0x10000>; interrupts = ; clocks = <&sai0_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>, <&sai0_lpcg IMX_LPCG_CLK_0>, <&clk_dummy>, <&clk_dummy>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dma-names = "rx", "tx"; dmas = <&edma0 12 0 1>, <&edma0 13 0 0>; power-domains = <&pd IMX_SC_R_SAI_0>; status = "disabled"; }; sai1: sai@59050000 { compatible = "fsl,imx8qm-sai"; reg = <0x59050000 0x10000>; interrupts = ; clocks = <&sai1_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>, <&sai1_lpcg IMX_LPCG_CLK_0>, <&clk_dummy>, <&clk_dummy>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dma-names = "rx", "tx"; dmas = <&edma0 14 0 1>, <&edma0 15 0 0>; power-domains = <&pd IMX_SC_R_SAI_1>; status = "disabled"; }; sai2: sai@59060000 { compatible = "fsl,imx8qm-sai"; reg = <0x59060000 0x10000>; interrupts = ; clocks = <&sai2_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>, <&sai2_lpcg IMX_LPCG_CLK_0>, <&clk_dummy>, <&clk_dummy>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dma-names = "rx"; dmas = <&edma0 16 0 1>; power-domains = <&pd IMX_SC_R_SAI_2>; status = "disabled"; }; sai3: sai@59070000 { compatible = "fsl,imx8qm-sai"; reg = <0x59070000 0x10000>; interrupts = ; clocks = <&sai3_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>, <&sai3_lpcg IMX_LPCG_CLK_0>, <&clk_dummy>, <&clk_dummy>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dma-names = "rx"; dmas = <&edma0 17 0 1>; power-domains = <&pd IMX_SC_R_SAI_3>; status = "disabled"; }; edma0: dma-controller@591f0000 { compatible = "fsl,imx8qm-edma"; reg = <0x591f0000 0x190000>; #dma-cells = <3>; dma-channels = <24>; dma-channel-mask = <0x5c0c00>; interrupts = , /* 0 asrc 0 */ , /* 1 */ , /* 2 */ , /* 3 */ , /* 4 */ , /* 5 */ , /* 6 esai0 */ , /* 7 */ , /* 8 spdif0 */ , /* 9 */ , /* 10 unused */ , /* 11 unused */ , /* 12 sai0 */ , /* 13 */ , /* 14 sai1 */ , /* 15 */ , /* 16 sai2 */ , /* 17 sai3 */ , /* 18 unused */ , /* 19 unused */ , /* 20 unused */ , /* 21 */ , /* 22 unused */ ; /* 23 unused */ power-domains = <&pd IMX_SC_R_DMA_0_CH0>, <&pd IMX_SC_R_DMA_0_CH1>, <&pd IMX_SC_R_DMA_0_CH2>, <&pd IMX_SC_R_DMA_0_CH3>, <&pd IMX_SC_R_DMA_0_CH4>, <&pd IMX_SC_R_DMA_0_CH5>, <&pd IMX_SC_R_DMA_0_CH6>, <&pd IMX_SC_R_DMA_0_CH7>, <&pd IMX_SC_R_DMA_0_CH8>, <&pd IMX_SC_R_DMA_0_CH9>, <&pd IMX_SC_R_DMA_0_CH10>, <&pd IMX_SC_R_DMA_0_CH11>, <&pd IMX_SC_R_DMA_0_CH12>, <&pd IMX_SC_R_DMA_0_CH13>, <&pd IMX_SC_R_DMA_0_CH14>, <&pd IMX_SC_R_DMA_0_CH15>, <&pd IMX_SC_R_DMA_0_CH16>, <&pd IMX_SC_R_DMA_0_CH17>, <&pd IMX_SC_R_DMA_0_CH18>, <&pd IMX_SC_R_DMA_0_CH19>, <&pd IMX_SC_R_DMA_0_CH20>, <&pd IMX_SC_R_DMA_0_CH21>, <&pd IMX_SC_R_DMA_0_CH22>, <&pd IMX_SC_R_DMA_0_CH23>; }; asrc0_lpcg: clock-controller@59400000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59400000 0x10000>; #clock-cells = <1>; clocks = <&audio_ipg_clk>; clock-indices = ; clock-output-names = "asrc0_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_ASRC_0>; }; esai0_lpcg: clock-controller@59410000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59410000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "esai0_lpcg_extal_clk", "esai0_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_ESAI_0>; }; spdif0_lpcg: clock-controller@59420000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59420000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SPDIF0_TX_CLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "spdif0_lpcg_tx_clk", "spdif0_lpcg_gclkw"; power-domains = <&pd IMX_SC_R_SPDIF_0>; }; sai0_lpcg: clock-controller@59440000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59440000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SAI0_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "sai0_lpcg_mclk", "sai0_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_SAI_0>; }; sai1_lpcg: clock-controller@59450000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59450000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SAI1_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "sai1_lpcg_mclk", "sai1_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_SAI_1>; }; sai2_lpcg: clock-controller@59460000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59460000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SAI2_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "sai2_lpcg_mclk", "sai2_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_SAI_2>; }; sai3_lpcg: clock-controller@59470000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59470000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SAI3_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "sai3_lpcg_mclk", "sai3_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_SAI_3>; }; dsp_lpcg: clock-controller@59580000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59580000 0x10000>; #clock-cells = <1>; clocks = <&audio_ipg_clk>, <&audio_ipg_clk>, <&audio_ipg_clk>; clock-indices = , , ; clock-output-names = "dsp_lpcg_adb_clk", "dsp_lpcg_ipg_clk", "dsp_lpcg_core_clk"; power-domains = <&pd IMX_SC_R_DSP>; }; dsp_ram_lpcg: clock-controller@59590000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59590000 0x10000>; #clock-cells = <1>; clocks = <&audio_ipg_clk>; clock-indices = ; clock-output-names = "dsp_ram_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_DSP_RAM>; }; dsp: dsp@596e8000 { compatible = "fsl,imx8qxp-dsp"; reg = <0x596e8000 0x88000>; clocks = <&dsp_lpcg IMX_LPCG_CLK_5>, <&dsp_ram_lpcg IMX_LPCG_CLK_4>, <&dsp_lpcg IMX_LPCG_CLK_7>; clock-names = "ipg", "ocram", "core"; power-domains = <&pd IMX_SC_R_MU_13A>, <&pd IMX_SC_R_MU_13B>, <&pd IMX_SC_R_DSP>, <&pd IMX_SC_R_DSP_RAM>; mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1"; mboxes = <&lsio_mu13 2 0>, <&lsio_mu13 2 1>, <&lsio_mu13 3 0>, <&lsio_mu13 3 1>; status = "disabled"; }; asrc1: asrc@59800000 { compatible = "fsl,imx8qm-asrc"; reg = <0x59800000 0x10000>; interrupts = ; clocks = <&asrc1_lpcg IMX_LPCG_CLK_4>, <&asrc1_lpcg IMX_LPCG_CLK_4>, <&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>; clock-names = "mem", "ipg", "asrck_0", "asrck_1", "asrck_2", "asrck_3", "asrck_4", "asrck_5", "asrck_6", "asrck_7", "asrck_8", "asrck_9", "asrck_a", "asrck_b", "asrck_c", "asrck_d", "asrck_e", "asrck_f", "spba"; dmas = <&edma1 0 0 0>, <&edma1 1 0 0>, <&edma1 2 0 0>, <&edma1 3 0 FSL_EDMA_RX>, <&edma1 4 0 FSL_EDMA_RX>, <&edma1 5 0 FSL_EDMA_RX>; /* tx* is output channel of asrc, it is rx channel for eDMA */ dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc"; fsl,asrc-rate = <8000>; fsl,asrc-width = <16>; fsl,asrc-clk-map = <1>; power-domains = <&pd IMX_SC_R_ASRC_1>; status = "disabled"; }; sai4: sai@59820000 { compatible = "fsl,imx8qm-sai"; reg = <0x59820000 0x10000>; interrupts = ; clocks = <&sai4_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>, <&sai4_lpcg IMX_LPCG_CLK_0>, <&clk_dummy>, <&clk_dummy>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&edma1 8 0 FSL_EDMA_RX>, <&edma1 9 0 0>; dma-names = "rx", "tx"; power-domains = <&pd IMX_SC_R_SAI_4>; status = "disabled"; }; sai5: sai@59830000 { compatible = "fsl,imx8qm-sai"; reg = <0x59830000 0x10000>; interrupts = ; clocks = <&sai5_lpcg IMX_LPCG_CLK_4>, <&clk_dummy>, <&sai5_lpcg IMX_LPCG_CLK_0>, <&clk_dummy>, <&clk_dummy>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; dmas = <&edma1 10 0 0>; dma-names = "tx"; power-domains = <&pd IMX_SC_R_SAI_5>; status = "disabled"; }; amix: amix@59840000 { compatible = "fsl,imx8qm-audmix"; reg = <0x59840000 0x10000>; clocks = <&amix_lpcg IMX_LPCG_CLK_0>; clock-names = "ipg"; power-domains = <&pd IMX_SC_R_AMIX>; dais = <&sai4>, <&sai5>; status = "disabled"; }; mqs: mqs@59850000 { compatible = "fsl,imx8qm-mqs"; reg = <0x59850000 0x10000>; clocks = <&mqs0_lpcg IMX_LPCG_CLK_4>, <&mqs0_lpcg IMX_LPCG_CLK_0>; clock-names = "mclk", "core"; power-domains = <&pd IMX_SC_R_MQS_0>; status = "disabled"; }; edma1: dma-controller@599f0000 { compatible = "fsl,imx8qm-edma"; reg = <0x599f0000 0xc0000>; #dma-cells = <3>; dma-channels = <11>; dma-channel-mask = <0xc0>; interrupts = , /* 0 asrc 1 */ , /* 1 */ , /* 2 */ , /* 3 */ , /* 4 */ , /* 5 */ , /* 6 unused */ , /* 7 unused */ , /* sai4 */ , ; /* sai5 */ power-domains = <&pd IMX_SC_R_DMA_1_CH0>, <&pd IMX_SC_R_DMA_1_CH1>, <&pd IMX_SC_R_DMA_1_CH2>, <&pd IMX_SC_R_DMA_1_CH3>, <&pd IMX_SC_R_DMA_1_CH4>, <&pd IMX_SC_R_DMA_1_CH5>, <&pd IMX_SC_R_DMA_1_CH6>, <&pd IMX_SC_R_DMA_1_CH7>, <&pd IMX_SC_R_DMA_1_CH8>, <&pd IMX_SC_R_DMA_1_CH9>, <&pd IMX_SC_R_DMA_1_CH10>; }; aud_rec0_lpcg: clock-controller@59d00000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59d00000 0x10000>; #clock-cells = <1>; clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>; clock-indices = ; clock-output-names = "aud_rec_clk0_lpcg_clk"; power-domains = <&pd IMX_SC_R_AUDIO_PLL_0>; }; aud_rec1_lpcg: clock-controller@59d10000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59d10000 0x10000>; #clock-cells = <1>; clocks = <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>; clock-indices = ; clock-output-names = "aud_rec_clk1_lpcg_clk"; power-domains = <&pd IMX_SC_R_AUDIO_PLL_1>; }; aud_pll_div0_lpcg: clock-controller@59d20000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59d20000 0x10000>; #clock-cells = <1>; clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>; clock-indices = ; clock-output-names = "aud_pll_div_clk0_lpcg_clk"; power-domains = <&pd IMX_SC_R_AUDIO_PLL_0>; }; aud_pll_div1_lpcg: clock-controller@59d30000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59d30000 0x10000>; #clock-cells = <1>; clocks = <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>; clock-indices = ; clock-output-names = "aud_pll_div_clk1_lpcg_clk"; power-domains = <&pd IMX_SC_R_AUDIO_PLL_1>; }; mclkout0_lpcg: clock-controller@59d50000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59d50000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_MCLKOUT0_SEL>; clock-indices = ; clock-output-names = "mclkout0_lpcg_clk"; power-domains = <&pd IMX_SC_R_MCLK_OUT_0>; }; mclkout1_lpcg: clock-controller@59d60000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59d60000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_MCLKOUT1_SEL>; clock-indices = ; clock-output-names = "mclkout1_lpcg_clk"; power-domains = <&pd IMX_SC_R_MCLK_OUT_1>; }; acm: acm@59e00000 { compatible = "fsl,imx8qxp-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_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_SPDIF_0>, <&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_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_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>; clock-names = "aud_rec_clk0_lpcg_clk", "aud_rec_clk1_lpcg_clk", "aud_pll_div_clk0_lpcg_clk", "aud_pll_div_clk1_lpcg_clk", "ext_aud_mclk0", "ext_aud_mclk1", "esai0_rx_clk", "esai0_rx_hf_clk", "esai0_tx_clk", "esai0_tx_hf_clk", "spdif0_rx", "sai0_rx_bclk", "sai0_tx_bclk", "sai1_rx_bclk", "sai1_tx_bclk", "sai2_rx_bclk", "sai3_rx_bclk", "sai4_rx_bclk"; }; asrc1_lpcg: clock-controller@59c00000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59c00000 0x10000>; #clock-cells = <1>; clocks = <&audio_ipg_clk>; clock-indices = ; clock-output-names = "asrc1_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_ASRC_1>; }; sai4_lpcg: clock-controller@59c20000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59c20000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "sai4_lpcg_mclk", "sai4_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_SAI_4>; }; sai5_lpcg: clock-controller@59c30000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59c30000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "sai5_lpcg_mclk", "sai5_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_SAI_5>; }; amix_lpcg: clock-controller@59c40000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59c40000 0x10000>; #clock-cells = <1>; clocks = <&audio_ipg_clk>; clock-indices = ; clock-output-names = "amix_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_AMIX>; }; mqs0_lpcg: clock-controller@59c50000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x59c50000 0x10000>; #clock-cells = <1>; clocks = <&acm IMX_ADMA_ACM_MQS_TX_CLK_SEL>, <&audio_ipg_clk>; clock-indices = , ; clock-output-names = "mqs0_lpcg_mclk", "mqs0_lpcg_ipg_clk"; power-domains = <&pd IMX_SC_R_MQS_0>; }; };