From ca53fc39c4cf94f1059166016cca1eab0fb92122 Mon Sep 17 00:00:00 2001 From: Robin Gong Date: Wed, 17 Apr 2019 17:10:53 +0800 Subject: [PATCH] MLK-22284-3 ARM64: dts: freescale: imx8dx/qm: split dma channel power domain Split dma channel power domain from sub-domain of dma customer driver such as Audio, LPSPI, LPUART. Signed-off-by: Robin Gong Reviewed-by: S.j. Wang (cherry picked from commit b76f339fdf91fe44066c2c820e4def07f47d159c) --- arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi | 623 +++++++-------- .../boot/dts/freescale/fsl-imx8qm-device.dtsi | 709 ++++++++---------- .../boot/dts/freescale/fsl-imx8qm-mek-dsp.dts | 68 +- .../freescale/fsl-imx8qxp-lpddr4-arm2-dsp.dts | 153 +++- .../dts/freescale/fsl-imx8qxp-mek-dsp.dts | 79 +- 5 files changed, 854 insertions(+), 778 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi index 1b734206c464..a8fb80b36d5b 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-imx8dx.dtsi @@ -483,6 +483,143 @@ #address-cells = <1>; #size-cells = <0>; + /* asrc0 */ + pd_dma0_chan0: PD_ASRC_0_RXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan1: PD_ASRC_0_RXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan2: PD_ASRC_0_RXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan3: PD_ASRC_0_TXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan4: PD_ASRC_0_TXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan5: PD_ASRC_0_TXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* asrc1 */ + pd_dma1_chan0: PD_ASRC_1_RXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma1_chan1: PD_ASRC_1_RXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma1_chan2: PD_ASRC_1_RXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma1_chan3: PD_ASRC_1_TXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma1_chan4: PD_ASRC_1_TXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma1_chan5: PD_ASRC_1_TXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* esai0 */ + pd_dma0_chan6: PD_ESAI_0_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan7: PD_ESAI_0_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* spdif0 */ + pd_dma0_chan8: PD_SPDIF_0_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan9: PD_SPDIF_0_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* sai0 */ + pd_dma0_chan12: PD_SAI_0_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan13: PD_SAI_0_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* sai1 */ + pd_dma0_chan14: PD_SAI_1_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma0_chan15: PD_SAI_1_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* sai2 rx*/ + pd_dma0_chan16: PD_SAI_2_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* sai3 rx */ + pd_dma0_chan17: PD_SAI_3_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* sai4 */ + pd_dma1_chan8: PD_SAI_4_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma1_chan9: PD_SAI_4_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + /* sai5 tx */ + pd_dma1_chan10: PD_SAI_5_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + + pd_audio_pll0: PD_AUD_AUDIO_PLL_0 { reg = ; power-domains =<&pd_audio>; @@ -511,258 +648,55 @@ #address-cells = <1>; #size-cells = <0>; - pd_dma0_chan0: PD_ASRC_0_RXA { - reg = ; - power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan1: PD_ASRC_0_RXB { - reg = ; - power-domains =<&pd_dma0_chan0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan2: PD_ASRC_0_RXC { - reg = ; - power-domains =<&pd_dma0_chan1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan3: PD_ASRC_0_TXA { - reg = ; - power-domains =<&pd_dma0_chan2>; + pd_asrc0:PD_AUD_ASRC_0 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan4: PD_ASRC_0_TXB { - reg = ; - power-domains =<&pd_dma0_chan3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan5: PD_ASRC_0_TXC { - reg = ; - power-domains =<&pd_dma0_chan4>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_asrc0:PD_AUD_ASRC_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan5>; - }; - }; - }; - }; - }; - }; - }; - - pd_dma1_chan0: PD_ASRC_1_RXA { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma1_chan1: PD_ASRC_1_RXB { - reg = ; - power-domains =<&pd_dma1_chan0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma1_chan2: PD_ASRC_1_RXC { - reg = ; - power-domains =<&pd_dma1_chan1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma1_chan3: PD_ASRC_1_TXA { - reg = ; - power-domains =<&pd_dma1_chan2>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma1_chan4: PD_ASRC_1_TXB { - reg = ; - power-domains =<&pd_dma1_chan3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma1_chan5: PD_ASRC_1_TXC { - reg = ; - power-domains =<&pd_dma1_chan4>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_asrc1: PD_AUD_ASRC_1 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma1_chan5>; - - }; - }; - }; - }; }; - }; - }; - pd_dma0_chan6: PD_ESAI_0_RX { - reg = ; - power-domains =<&pd_audio_clk1>; + pd_asrc1: PD_AUD_ASRC_1 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan7: PD_ESAI_0_TX { - reg = ; - power-domains =<&pd_dma0_chan6>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_esai0: PD_AUD_ESAI_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan7>; - }; - }; - }; - pd_dma0_chan8: PD_SPDIF_0_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan9: PD_SPDIF_0_TX { - reg = ; - power-domains =<&pd_dma0_chan8>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_spdif0: PD_AUD_SPDIF_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan9>; - - }; - }; }; - pd_dma0_chan12: PD_SAI_0_RX { - reg = ; - power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan13: PD_SAI_0_TX { - reg = ; - power-domains =<&pd_dma0_chan12>; + pd_esai0: PD_AUD_ESAI_0 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai0:PD_AUD_SAI_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan13>; - }; - }; - - }; - pd_dma0_chan14: PD_SAI_1_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan15: PD_SAI_1_TX { - reg = ; - power-domains =<&pd_dma0_chan14>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai1: PD_AUD_SAI_1 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan15>; - }; - }; }; - pd_dma0_chan16: PD_SAI_2_RX { - reg = ; - power-domains =<&pd_audio_clk1>; + pd_spdif0: PD_AUD_SPDIF_0 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - pd_sai2: PD_AUD_SAI_2 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan16>; - }; - }; - pd_dma0_chan17: PD_SAI_3_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai3: PD_AUD_SAI_3 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma0_chan17>; - }; }; - pd_dma1_chan8: PD_SAI_4_RX { - reg = ; + pd_sai0:PD_AUD_SAI_0 { + reg = ; + #power-domain-cells = <0>; power-domains =<&pd_audio_clk1>; + }; + pd_sai1: PD_AUD_SAI_1 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma1_chan9: PD_SAI_4_TX { - reg = ; - power-domains =<&pd_dma1_chan8>; + power-domains =<&pd_audio_clk1>; + }; + pd_sai2: PD_AUD_SAI_2 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai4: PD_AUD_SAI_4 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma1_chan9>; - - }; + power-domains =<&pd_audio_clk1>; }; + pd_sai3: PD_AUD_SAI_3 { + reg = ; + #power-domain-cells = <0>; + power-domains =<&pd_audio_clk1>; }; - pd_dma1_chan10: PD_SAI_5_TX { - reg = ; + pd_sai4: PD_AUD_SAI_4 { + reg = ; + #power-domain-cells = <0>; power-domains =<&pd_audio_clk1>; + }; + pd_sai5: PD_AUD_SAI_5 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - pd_sai5: PD_AUD_SAI_5 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma1_chan10>; - }; + power-domains =<&pd_audio_clk1>; }; pd_gpt5: PD_AUD_GPT_5 { reg = ; @@ -933,136 +867,126 @@ power-domains = <&pd_dma>; wakeup-irq = <345>; }; + pd_dma2_chan8: PD_UART0_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan9: PD_UART0_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; pd_dma_lpuart1: PD_DMA_UART1 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <346>; - - pd_dma2_chan10: PD_UART1_RX { - reg = ; - power-domains =<&pd_dma_lpuart1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan11: PD_UART1_TX { - reg = ; - power-domains =<&pd_dma2_chan10>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma2_chan10: PD_UART1_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan11: PD_UART1_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpuart2: PD_DMA_UART2 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <347>; - - pd_dma2_chan12: PD_UART2_RX { - reg = ; - power-domains =<&pd_dma_lpuart2>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan13: PD_UART2_TX { - reg = ; - power-domains =<&pd_dma2_chan12>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma2_chan12: PD_UART2_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan13: PD_UART2_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpuart3: PD_DMA_UART3 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <348>; - - pd_dma3_chan14: PD_UART3_RX { - reg = ; - power-domains =<&pd_dma_lpuart3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan15: PD_UART3_TX { - reg = ; - power-domains =<&pd_dma3_chan14>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma2_chan14: PD_UART3_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan15: PD_UART3_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpspi0: PD_DMA_SPI_0 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <336>; - - pd_dma2_chan0: PD_LPSPI0_RX { - reg = ; - power-domains =<&pd_dma_lpspi0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan1: PD_LPSPI0_TX { - reg = ; - power-domains =<&pd_dma2_chan0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma2_chan0: PD_LPSPI0_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan1: PD_LPSPI0_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpspi1: PD_DMA_SPI_1 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; }; + pd_dma2_chan2: PD_LPSPI1_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan3: PD_LPSPI1_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; pd_dma_lpspi2: PD_DMA_SPI_2 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <338>; - - pd_dma2_chan4: PD_LPSPI2_RX { - reg = ; - power-domains =<&pd_dma_lpspi2>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan5: PD_LPSPI2_TX { - reg = ; - power-domains =<&pd_dma2_chan4>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma2_chan4: PD_LPSPI2_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan5: PD_LPSPI2_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpspi3: PD_DMA_SPI_3 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; }; + pd_dma2_chan6: PD_LPSPI3_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma2_chan7: PD_LPSPI3_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; pd_dma_pwm0: PD_DMA_PWM_0 { reg = ; #power-domain-cells = <0>; @@ -2765,7 +2689,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QXP_SPI0_CLK>; assigned-clock-rates = <20000000>; - power-domains = <&pd_dma2_chan1>; + power-domains = <&pd_dma_lpspi0>; dma-names = "tx","rx"; dmas = <&edma2 1 0 0>, <&edma2 0 0 1>; status = "disabled"; @@ -2781,7 +2705,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QXP_SPI2_CLK>; assigned-clock-rates = <20000000>; - power-domains = <&pd_dma2_chan5>; + power-domains = <&pd_dma_lpspi2>; dma-names = "tx","rx"; dmas = <&edma2 5 0 0>, <&edma2 4 0 1>; status = "disabled"; @@ -2811,7 +2735,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QXP_UART1_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma2_chan11>; + power-domains = <&pd_dma_lpuart1>; dma-names = "tx","rx"; dmas = <&edma2 11 0 0>, <&edma2 10 0 1>; @@ -2828,7 +2752,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QXP_UART2_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma2_chan13>; + power-domains = <&pd_dma_lpuart2>; dma-names = "tx","rx"; dmas = <&edma2 13 0 0>, <&edma2 12 0 1>; @@ -2845,7 +2769,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QXP_UART3_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma3_chan15>; + power-domains = <&pd_dma_lpuart3>; dma-names = "tx","rx"; dmas = <&edma2 15 0 0>, <&edma2 14 0 1>; @@ -2896,6 +2820,14 @@ "edma2-chan10-rx", "edma2-chan11-tx", "edma2-chan12-rx", "edma2-chan13-tx", "edma2-chan14-rx", "edma2-chan15-tx"; + pdomains = <&pd_dma2_chan0>, <&pd_dma2_chan1>,/* lpspi0 */ + <&pd_dma2_chan2>, <&pd_dma2_chan3>,/* lpspi1 */ + <&pd_dma2_chan4>, <&pd_dma2_chan5>,/* lpspi2 */ + <&pd_dma2_chan6>, <&pd_dma2_chan7>,/* lpspi3 */ + <&pd_dma2_chan8>, <&pd_dma2_chan9>,/* UART0 */ + <&pd_dma2_chan10>, <&pd_dma2_chan11>,/* UART1 */ + <&pd_dma2_chan12>, <&pd_dma2_chan13>,/* UART2 */ + <&pd_dma2_chan14>, <&pd_dma2_chan15>;/* UART3 */ status = "okay"; }; @@ -2915,8 +2847,8 @@ <0x0 0x592d0000 0x0 0x10000>, /* sai0 tx */ <0x0 0x592e0000 0x0 0x10000>, /* sai1 rx */ <0x0 0x592f0000 0x0 0x10000>, /* sai1 tx */ - <0x0 0x59350000 0x0 0x10000>, - <0x0 0x59370000 0x0 0x10000>; + <0x0 0x59300000 0x0 0x10000>, /* sai2 rx */ + <0x0 0x59310000 0x0 0x10000>; #dma-cells = <3>; shared-interrupt; dma-channels = <16>; @@ -2934,8 +2866,8 @@ , , /* sai1 */ , - , - ; + , + ; interrupt-names = "edma0-chan0-rx", "edma0-chan1-rx", /* asrc0 */ "edma0-chan2-rx", "edma0-chan3-tx", "edma0-chan4-tx", "edma0-chan5-tx", @@ -2943,8 +2875,23 @@ "edma0-chan8-rx", "edma0-chan9-tx", /* spdif0 */ "edma0-chan12-rx", "edma0-chan13-tx", /* sai0 */ "edma0-chan14-rx", "edma0-chan15-tx", /* sai1 */ - "edma0-chan21-tx", /* gpt5 */ - "edma0-chan23-rx"; /* gpt7 */ + "edma0-chan16-rx", /* sai2 */ + "edma0-chan17-rx"; /* sai3 */ + pdomains = <&pd_dma0_chan0>, <&pd_dma0_chan1>, <&pd_dma0_chan2>, + <&pd_dma0_chan3>, <&pd_dma0_chan4>, <&pd_dma0_chan5>, + /* asrc0 */ + <&pd_dma0_chan6>, <&pd_dma0_chan7>, + /* esai0 */ + <&pd_dma0_chan8>, <&pd_dma0_chan9>, + /* spdif0 */ + <&pd_dma0_chan12>, <&pd_dma0_chan13>, + /* sai0 */ + <&pd_dma0_chan14>, <&pd_dma0_chan15>, + /* sai1 */ + <&pd_dma0_chan16>, + /* sai2 rx */ + <&pd_dma0_chan17>; + /* sai3 rx */ status = "okay"; }; @@ -2976,6 +2923,14 @@ "edma1-chan4-tx", "edma1-chan5-tx", "edma1-chan8-rx", "edma1-chan9-tx", /* sai4 */ "edma1-chan10-tx"; /* sai5 */ + pdomains = <&pd_dma1_chan0>, <&pd_dma1_chan1>, <&pd_dma1_chan2>, + <&pd_dma1_chan3>, <&pd_dma1_chan4>, <&pd_dma1_chan5>, + /* asrc1 */ + <&pd_dma1_chan8>, <&pd_dma1_chan9>, + /* sai4 */ + <&pd_dma1_chan10>; + /* sai5 tx */ + status = "okay"; }; diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi index 5bbbd1bf61c4..2b5208da6b14 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-device.dtsi @@ -497,6 +497,161 @@ #address-cells = <1>; #size-cells = <0>; + pd_dma2_chan0: PD_ASRC_0_RXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan1: PD_ASRC_0_RXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan2: PD_ASRC_0_RXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan3: PD_ASRC_0_TXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan4: PD_ASRC_0_TXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan5: PD_ASRC_0_TXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan6: PD_ESAI_0_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan7: PD_ESAI_0_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan8: PD_SPDIF_0_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan9: PD_SPDIF_0_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan10: PD_SPDIF_1_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan11: PD_SPDIF_1_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan12: PD_SAI_0_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan13: PD_SAI_0_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan14: PD_SAI_1_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan15: PD_SAI_1_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan16: PD_SAI_2_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan17: PD_SAI_3_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan18: PD_SAI_4_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma2_chan19: PD_SAI_5_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan0: PD_ASRC_1_RXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan1: PD_ASRC_1_RXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan2: PD_ASRC_1_RXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan3: PD_ASRC_1_TXA { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan4: PD_ASRC_1_TXB { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan5: PD_ASRC_1_TXC { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan6: PD_ESAI_1_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan7: PD_ESAI_1_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan8: PD_SAI_6_RX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan9: PD_SAI_6_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; + pd_dma3_chan10: PD_SAI_7_TX { + reg = ; + power-domains =<&pd_audio>; + #power-domain-cells = <0>; + }; pd_audio_pll0: PD_AUD_AUDIO_PLL_0 { reg = ; power-domains =<&pd_audio>; @@ -525,328 +680,77 @@ #address-cells = <1>; #size-cells = <0>; - pd_dma2_chan0: PD_ASRC_0_RXA { - reg = ; - power-domains =<&pd_audio_clk1>; + pd_asrc0:PD_AUD_ASRC_0 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan1: PD_ASRC_0_RXB { - reg = ; - power-domains =<&pd_dma2_chan0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan2: PD_ASRC_0_RXC { - reg = ; - power-domains =<&pd_dma2_chan1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan3: PD_ASRC_0_TXA { - reg = ; - power-domains =<&pd_dma2_chan2>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan4: PD_ASRC_0_TXB { - reg = ; - power-domains =<&pd_dma2_chan3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan5: PD_ASRC_0_TXC { - reg = ; - power-domains =<&pd_dma2_chan4>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_asrc0:PD_AUD_ASRC_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan5>; - }; - }; - }; - }; - }; - }; - }; - - pd_dma3_chan0: PD_ASRC_1_RXA { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan1: PD_ASRC_1_RXB { - reg = ; - power-domains =<&pd_dma3_chan0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan2: PD_ASRC_1_RXC { - reg = ; - power-domains =<&pd_dma3_chan1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan3: PD_ASRC_1_TXA { - reg = ; - power-domains =<&pd_dma3_chan2>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan4: PD_ASRC_1_TXB { - reg = ; - power-domains =<&pd_dma3_chan3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan5: PD_ASRC_1_TXC { - reg = ; - power-domains =<&pd_dma3_chan4>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_asrc1: PD_AUD_ASRC_1 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma3_chan5>; - - }; - }; }; - }; - }; - }; - }; - pd_dma2_chan6: PD_ESAI_0_RX { - reg = ; - power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan7: PD_ESAI_0_TX { - reg = ; - power-domains =<&pd_dma2_chan6>; + pd_asrc1: PD_AUD_ASRC_1 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_esai0: PD_AUD_ESAI_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan7>; - }; - }; - }; - - pd_dma3_chan6: PD_ESAI_1_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan7: PD_ESAI_1_TX { - reg = ; - power-domains =<&pd_dma3_chan6>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_esai1: PD_AUD_ESAI_1 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma3_chan7>; - }; }; - }; - pd_dma2_chan8: PD_SPDIF_0_RX { - reg = ; - power-domains =<&pd_audio_clk1>; + pd_esai0: PD_AUD_ESAI_0 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan9: PD_SPDIF_0_TX { - reg = ; - power-domains =<&pd_dma2_chan8>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_spdif0: PD_AUD_SPDIF_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan9>; - - }; - }; - }; - pd_dma2_chan10: PD_SPDIF_1_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan11: PD_SPDIF_1_TX { - reg = ; - power-domains =<&pd_dma2_chan10>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_spdif1: PD_AUD_SPDIF_1 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan11>; - - }; - }; }; - pd_dma2_chan12: PD_SAI_0_RX { - reg = ; - power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan13: PD_SAI_0_TX { - reg = ; - power-domains =<&pd_dma2_chan12>; + pd_esai1: PD_AUD_ESAI_1 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai0:PD_AUD_SAI_0 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan13>; - }; - }; - - }; - pd_dma2_chan14: PD_SAI_1_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma2_chan15: PD_SAI_1_TX { - reg = ; - power-domains =<&pd_dma2_chan14>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai1: PD_AUD_SAI_1 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan15>; - }; - }; }; - pd_dma2_chan16: PD_SAI_2_RX { - reg = ; - power-domains =<&pd_audio_clk1>; + pd_spdif0: PD_AUD_SPDIF_0 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - pd_sai2: PD_AUD_SAI_2 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan16>; - }; - }; - pd_dma2_chan17: PD_SAI_3_RX { - reg = ; power-domains =<&pd_audio_clk1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - pd_sai3: PD_AUD_SAI_3 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan17>; - }; }; - pd_dma2_chan18: PD_SAI_4_RX { - reg = ; - power-domains =<&pd_audio_clk1>; + pd_spdif1: PD_AUD_SPDIF_1 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; + power-domains =<&pd_audio_clk1>; - pd_sai4: PD_AUD_SAI_4 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan18>; - }; }; - pd_dma2_chan19: PD_SAI_5_RX { - reg = ; + pd_sai0:PD_AUD_SAI_0 { + reg = ; + #power-domain-cells = <0>; power-domains =<&pd_audio_clk1>; + }; + pd_sai1: PD_AUD_SAI_1 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai5: PD_AUD_SAI_5 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma2_chan19>; - }; + power-domains =<&pd_audio_clk1>; }; - pd_dma3_chan8: PD_SAI_6_RX { - reg = ; + pd_sai2: PD_AUD_SAI_2 { + reg = ; + #power-domain-cells = <0>; power-domains =<&pd_audio_clk1>; + }; + pd_sai3: PD_AUD_SAI_3 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma3_chan9: PD_SAI_6_TX { - reg = ; - power-domains =<&pd_dma3_chan8>; + power-domains =<&pd_audio_clk1>; + }; + pd_sai4: PD_AUD_SAI_4 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_sai6: PD_AUD_SAI_6 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma3_chan9>; - - }; + power-domains =<&pd_audio_clk1>; }; + pd_sai5: PD_AUD_SAI_5 { + reg = ; + #power-domain-cells = <0>; + power-domains =<&pd_audio_clk1>; }; - pd_dma3_chan10: PD_SAI_7_TX { - reg = ; + pd_sai6: PD_AUD_SAI_6 { + reg = ; + #power-domain-cells = <0>; power-domains =<&pd_audio_clk1>; + }; + pd_sai7: PD_AUD_SAI_7 { + reg = ; #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - pd_sai7: PD_AUD_SAI_7 { - reg = ; - #power-domain-cells = <0>; - power-domains =<&pd_dma3_chan10>; - }; + power-domains =<&pd_audio_clk1>; }; pd_gpt5: PD_AUD_GPT_5 { reg = ; @@ -1017,124 +921,94 @@ power-domains = <&pd_dma>; wakeup-irq = <345>; }; + pd_dma0_chan12: PD_UART0_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan13: PD_UART0_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; pd_dma_lpuart1: PD_DMA_UART1 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <346>; - - pd_dma0_chan14: PD_UART1_RX { - reg = ; - power-domains =<&pd_dma_lpuart1>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan15: PD_UART1_TX { - reg = ; - power-domains =<&pd_dma0_chan14>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma0_chan14: PD_UART1_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan15: PD_UART1_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpuart2: PD_DMA_UART2 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <347>; - - pd_dma0_chan16: PD_UART2_RX { - reg = ; - power-domains =<&pd_dma_lpuart2>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan17: PD_UART2_TX { - reg = ; - power-domains =<&pd_dma0_chan16>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma0_chan16: PD_UART2_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan17: PD_UART2_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpuart3: PD_DMA_UART3 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <348>; - - pd_dma0_chan18: PD_UART3_RX { - reg = ; - power-domains =<&pd_dma_lpuart3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan19: PD_UART3_TX { - reg = ; - power-domains =<&pd_dma0_chan18>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma0_chan18: PD_UART3_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan19: PD_UART3_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpuart4: PD_DMA_UART4 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; wakeup-irq = <349>; - - pd_dma0_chan20: PD_UART4_RX { - reg = ; - power-domains =<&pd_dma_lpuart4>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan21: PD_UART4_TX { - reg = ; - power-domains =<&pd_dma0_chan20>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma0_chan20: PD_UART4_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan21: PD_UART4_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpspi0: PD_DMA_SPI_0 { reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan0: PD_LPSPI0_RX { - reg = ; - power-domains =<&pd_dma_lpspi0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan1: PD_LPSPI0_TX { - reg = ; - power-domains =<&pd_dma0_chan0>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; }; - }; + pd_dma0_chan0: PD_LPSPI0_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan1: PD_LPSPI0_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_lpspi1: PD_DMA_SPI_1 { reg = ; @@ -1150,24 +1024,16 @@ reg = ; #power-domain-cells = <0>; power-domains = <&pd_dma>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan6: PD_LPSPI3_RX { - reg = ; - power-domains =<&pd_dma_lpspi3>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - - pd_dma0_chan7: PD_LPSPI3_TX { - reg = ; - power-domains =<&pd_dma0_chan6>; - #power-domain-cells = <0>; - #address-cells = <1>; - #size-cells = <0>; - }; - }; + }; + pd_dma0_chan6: PD_LPSPI3_RX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; + }; + pd_dma0_chan7: PD_LPSPI3_TX { + reg = ; + power-domains =<&pd_dma>; + #power-domain-cells = <0>; }; pd_dma_emvsim0: PD_DMA_EMVSIM_0 { reg = ; @@ -3027,7 +2893,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QM_SPI0_CLK>; assigned-clock-rates = <20000000>; - power-domains = <&pd_dma0_chan1>; + power-domains = <&pd_dma_lpspi0>; dma-names = "tx","rx"; dmas = <&edma0 1 0 0>, <&edma0 0 0 1>; status = "disabled"; @@ -3043,7 +2909,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QM_SPI3_CLK>; assigned-clock-rates = <60000000>; - power-domains = <&pd_dma0_chan7>; + power-domains = <&pd_dma_lpspi3>; dma-names = "tx","rx"; dmas = <&edma0 7 0 0>, <&edma0 6 0 1>; status = "disabled"; @@ -3073,7 +2939,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QM_UART1_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma0_chan15>; + power-domains = <&pd_dma_lpuart1>; dma-names = "tx","rx"; dmas = <&edma0 15 0 0>, <&edma0 14 0 1>; @@ -3090,7 +2956,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QM_UART2_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma0_chan17>; + power-domains = <&pd_dma_lpuart2>; dma-names = "tx","rx"; dmas = <&edma0 17 0 0>, <&edma0 16 0 1>; @@ -3107,7 +2973,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QM_UART3_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma0_chan19>; + power-domains = <&pd_dma_lpuart3>; dma-names = "tx","rx"; dmas = <&edma0 19 0 0>, <&edma0 18 0 1>; @@ -3124,7 +2990,7 @@ clock-names = "per", "ipg"; assigned-clocks = <&clk IMX8QM_UART4_CLK>; assigned-clock-rates = <80000000>; - power-domains = <&pd_dma0_chan21>; + power-domains = <&pd_dma_lpuart4>; dma-names = "tx","rx"; dmas = <&edma0 21 0 0>, <&edma0 20 0 1>; @@ -3217,6 +3083,13 @@ "edma0-chan16-rx", "edma0-chan17-tx", "edma0-chan18-rx", "edma0-chan19-tx", "edma0-chan20-rx", "edma0-chan21-tx"; + pdomains = <&pd_dma0_chan0>, <&pd_dma0_chan1>, /* lpspi0 */ + <&pd_dma0_chan6>, <&pd_dma0_chan7>, /* lpspi3 */ + <&pd_dma0_chan12>, <&pd_dma0_chan13>, /* lpuart0 */ + <&pd_dma0_chan14>, <&pd_dma0_chan15>, /* lpuart1 */ + <&pd_dma0_chan16>, <&pd_dma0_chan17>, /* lpuart2 */ + <&pd_dma0_chan18>, <&pd_dma0_chan19>, /* lpuart3 */ + <&pd_dma0_chan20>, <&pd_dma0_chan21>; /* lpuart4 */ status = "okay"; }; @@ -3270,6 +3143,23 @@ "edma2-chan12-rx", "edma2-chan13-tx", /* sai0 */ "edma2-chan14-rx", "edma2-chan15-tx", /* sai1 */ "edma2-chan18-rx", "edma2-chan19-tx"; /* sai4, sai5 */ + pdomains = <&pd_dma2_chan0>, <&pd_dma2_chan1>, <&pd_dma2_chan2>, + <&pd_dma2_chan3>, <&pd_dma2_chan4>, <&pd_dma2_chan5>, + /* asrc0 */ + <&pd_dma2_chan6>, <&pd_dma2_chan7>, + /* esai0 */ + <&pd_dma2_chan8>, <&pd_dma2_chan9>, + /* spdif0 */ + <&pd_dma2_chan10>, <&pd_dma2_chan11>, + /* spdif1 */ + <&pd_dma2_chan12>, <&pd_dma2_chan13>, + /* sai0 */ + <&pd_dma2_chan14>, <&pd_dma2_chan15>, + /* sai1 */ + <&pd_dma2_chan18>, + /* sai4 */ + <&pd_dma2_chan19>; + /* sai5 */ status = "okay"; }; @@ -3301,6 +3191,13 @@ "edma3-chan4-tx", "edma3-chan5-tx", "edma3-chan8-rx", "edma3-chan9-tx", /* sai6 */ "edma3-chan10-tx"; /* sai7 */ + pdomains = <&pd_dma3_chan0>, <&pd_dma3_chan1>, <&pd_dma3_chan2>, + <&pd_dma3_chan3>, <&pd_dma3_chan4>, <&pd_dma3_chan5>, + /* asrc1 */ + <&pd_dma3_chan8>, <&pd_dma3_chan9>, + /* sai6 */ + <&pd_dma3_chan10>; + /* sai7 */ status = "okay"; }; diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-dsp.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-dsp.dts index 3588fe8c16b4..4150d2549111 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-dsp.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek-dsp.dts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0+ // Copyright NXP 2018 -#include "fsl-imx8qm-mek.dts" +#include "fsl-imx8qm-mek-rpmsg.dts" / { sound-cs42888 { @@ -72,6 +72,11 @@ "edma2-chan12-rx", "edma2-chan13-tx", /* sai0 */ "edma2-chan14-rx", "edma2-chan15-tx", /* sai1 */ "edma2-chan18-tx", "edma2-chan19-rx"; /* sai4, sai5 */ + pdomains = <&pd_dma2_chan8>, <&pd_dma2_chan9>, /* spdif0 */ + <&pd_dma2_chan12>, <&pd_dma2_chan13>, /* sai0 */ + <&pd_dma2_chan14>, <&pd_dma2_chan15>, /* sai1 */ + <&pd_dma2_chan18>, /* sai4 */ + <&pd_dma2_chan19>; /* sai5 */ status = "okay"; }; @@ -101,19 +106,70 @@ power-domains = <&pd_dsp>; }; + +/delete-node/ &pd_dma2_chan0; +/delete-node/ &pd_dma2_chan1; +/delete-node/ &pd_dma2_chan2; +/delete-node/ &pd_dma2_chan3; +/delete-node/ &pd_dma2_chan4; +/delete-node/ &pd_dma2_chan5; /delete-node/ &pd_dma2_chan6; +/delete-node/ &pd_dma2_chan7; /delete-node/ &pd_dsp_irqsteer; +/delete-node/ &pd_esai0; &pd_asrc0 { reg = ; - power-domains =<&pd_dma2_chan5>; + power-domains =<&pd_audio_clk1>; #power-domain-cells = <0>; #address-cells = <1>; #size-cells = <0>; + pd_dma2_chan0: PD_ASRC_0_RXA { + reg = ; + power-domains =<&pd_asrc0>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma2_chan1: PD_ASRC_0_RXB { + reg = ; + power-domains =<&pd_dma2_chan0>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma2_chan2: PD_ASRC_0_RXC { + reg = ; + power-domains =<&pd_dma2_chan1>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma2_chan3: PD_ASRC_0_TXA { + reg = ; + power-domains =<&pd_dma2_chan2>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma2_chan4: PD_ASRC_0_TXB { + reg = ; + power-domains =<&pd_dma2_chan3>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma2_chan5: PD_ASRC_0_TXC { + reg = ; + power-domains =<&pd_dma2_chan4>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + pd_dma2_chan6: PD_ESAI_0_RX { reg = ; - power-domains =<&pd_asrc0>; + power-domains =<&pd_dma2_chan5>; #power-domain-cells = <0>; #address-cells = <1>; #size-cells = <0>; @@ -171,6 +227,12 @@ }; }; }; + }; + }; + }; + }; + }; + }; }; &esai0 { diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-dsp.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-dsp.dts index 0a10ac35627c..5b1c79b2d283 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-dsp.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2-dsp.dts @@ -12,24 +12,6 @@ compatible = "fsl,dsp-audio"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_esai0>; - clocks = <&clk IMX8QXP_AUD_ESAI_0_IPG>, - <&clk IMX8QXP_AUD_ESAI_0_EXTAL_IPG>, - <&clk IMX8QXP_AUD_ASRC_0_IPG>, - <&clk IMX8QXP_CLK_DUMMY>, - <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_CLK>, - <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK1_CLK>, - <&clk IMX8QXP_ACM_AUD_CLK0_SEL>, - <&clk IMX8QXP_ACM_AUD_CLK1_SEL>; - clock-names = "bus", "mclk", "ipg", "mem", - "asrck_0", "asrck_1", "asrck_2", "asrck_3"; - assigned-clocks = <&clk IMX8QXP_ACM_ESAI0_MCLK_SEL>, - <&clk IMX8QXP_AUD_PLL0_DIV>, - <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_DIV>, - <&clk IMX8QXP_AUD_ACM_AUD_REC_CLK0_DIV>, - <&clk IMX8QXP_AUD_ESAI_0_EXTAL_IPG>; - assigned-clock-parents = <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_CLK>; - assigned-clock-rates = <0>, <786432000>, <49152000>, <24576000>, <49152000>; - power-domains = <&pd_esai0>; status = "okay"; }; @@ -42,6 +24,31 @@ }; }; +&dsp { + compatible = "fsl,imx8qxp-dsp"; + reserved-region = <&dsp_reserved>; + reg = <0x0 0x596e8000 0x0 0x88000>; + clocks = <&clk IMX8QXP_AUD_ESAI_0_IPG>, + <&clk IMX8QXP_AUD_ESAI_0_EXTAL_IPG>, + <&clk IMX8QXP_AUD_ASRC_0_IPG>, + <&clk IMX8QXP_CLK_DUMMY>, + <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_CLK>, + <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK1_CLK>, + <&clk IMX8QXP_ACM_AUD_CLK0_SEL>, + <&clk IMX8QXP_ACM_AUD_CLK1_SEL>; + clock-names = "esai_ipg", "esai_mclk", "asrc_ipg", "asrc_mem", + "asrck_0", "asrck_1", "asrck_2", "asrck_3"; + assigned-clocks = <&clk IMX8QXP_ACM_ESAI0_MCLK_SEL>, + <&clk IMX8QXP_AUD_PLL0_DIV>, + <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_DIV>, + <&clk IMX8QXP_AUD_ACM_AUD_REC_CLK0_DIV>, + <&clk IMX8QXP_AUD_ESAI_0_EXTAL_IPG>; + assigned-clock-parents = <&clk IMX8QXP_AUD_ACM_AUD_PLL_CLK0_CLK>; + assigned-clock-rates = <0>, <786432000>, <49152000>, <24576000>, <49152000>; + fsl,dsp-firmware = "imx/dsp/hifi4.bin"; + power-domains = <&pd_dsp>; +}; + &edma0 { compatible = "fsl,imx8qm-edma"; reg = <0x0 0x59280000 0x0 0x10000>, /* spdif0 rx */ @@ -50,8 +57,8 @@ <0x0 0x592d0000 0x0 0x10000>, /* sai0 tx */ <0x0 0x592e0000 0x0 0x10000>, /* sai1 rx */ <0x0 0x592f0000 0x0 0x10000>, /* sai1 tx */ - <0x0 0x59350000 0x0 0x10000>, - <0x0 0x59370000 0x0 0x10000>; + <0x0 0x59300000 0x0 0x10000>, /* sai2 rx */ + <0x0 0x59310000 0x0 0x10000>; #dma-cells = <3>; shared-interrupt; dma-channels = <8>; @@ -61,28 +68,85 @@ , , /* sai1 */ , - , - ; + , + ; interrupt-names = "edma0-chan8-rx", "edma0-chan9-tx", /* spdif0 */ "edma0-chan12-rx", "edma0-chan13-tx", /* sai0 */ "edma0-chan14-rx", "edma0-chan15-tx", /* sai1 */ - "edma0-chan21-tx", /* gpt5 */ - "edma0-chan23-rx"; /* gpt7 */ + "edma0-chan16-rx", /* sai2 */ + "edma0-chan17-rx"; /* sai3 */ + pdomains = <&pd_dma0_chan8>, <&pd_dma0_chan9>, /* spdif0 */ + <&pd_dma0_chan12>, <&pd_dma0_chan13>, /* sai0 */ + <&pd_dma0_chan14>, <&pd_dma0_chan15>, /* sai1 */ + <&pd_dma0_chan16>, /* sai2 rx */ + <&pd_dma0_chan17>; /* sai3 rx */ status = "okay"; }; +/delete-node/ &pd_dma0_chan0; +/delete-node/ &pd_dma0_chan1; +/delete-node/ &pd_dma0_chan2; +/delete-node/ &pd_dma0_chan3; +/delete-node/ &pd_dma0_chan4; +/delete-node/ &pd_dma0_chan5; /delete-node/ &pd_dma0_chan6; +/delete-node/ &pd_dma0_chan7; +/delete-node/ &pd_dsp_mu_A; +/delete-node/ &pd_esai0; + &pd_asrc0 { reg = ; - power-domains =<&pd_dma0_chan5>; + power-domains =<&pd_audio_clk1>; #power-domain-cells = <0>; #address-cells = <1>; #size-cells = <0>; + pd_dma0_chan0: PD_ASRC_0_RXA { + reg = ; + power-domains =<&pd_asrc0>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan1: PD_ASRC_0_RXB { + reg = ; + power-domains =<&pd_dma0_chan0>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan2: PD_ASRC_0_RXC { + reg = ; + power-domains =<&pd_dma0_chan1>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan3: PD_ASRC_0_TXA { + reg = ; + power-domains =<&pd_dma0_chan2>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan4: PD_ASRC_0_TXB { + reg = ; + power-domains =<&pd_dma0_chan3>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan5: PD_ASRC_0_TXC { + reg = ; + power-domains =<&pd_dma0_chan4>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + pd_dma0_chan6: PD_ESAI_0_RX { reg = ; - power-domains =<&pd_asrc0>; + power-domains =<&pd_dma0_chan5>; #power-domain-cells = <0>; #address-cells = <1>; #size-cells = <0>; @@ -98,9 +162,46 @@ reg = ; #power-domain-cells = <0>; power-domains =<&pd_dma0_chan7>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dsp_mu_A: PD_DSP_MU_A { + reg = ; + #power-domain-cells = <0>; + power-domains =<&pd_esai0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dsp_mu_B: PD_DSP_MU_B { + reg = ; + #power-domain-cells = <0>; + power-domains =<&pd_dsp_mu_A>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dsp_ram: PD_AUD_OCRAM { + reg = ; + #power-domain-cells = <0>; + power-domains =<&pd_dsp_mu_B>; + #address-cells = <1>; + #size-cells = <0>; + pd_dsp: PD_AUD_DSP { + reg = ; + #power-domain-cells = <0>; + power-domains =<&pd_dsp_ram>; + }; + }; + }; + }; }; }; }; + }; + }; + }; + }; + }; + }; }; &esai0 { diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek-dsp.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek-dsp.dts index 70c0fbdd8171..81b8211eaad1 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek-dsp.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek-dsp.dts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0+ // Copyright NXP 2018 -#include "fsl-imx8qxp-mek.dts" +#include "fsl-imx8qxp-mek-rpmsg.dts" / { sound-cs42888 { @@ -36,8 +36,8 @@ <0x0 0x592d0000 0x0 0x10000>, /* sai0 tx */ <0x0 0x592e0000 0x0 0x10000>, /* sai1 rx */ <0x0 0x592f0000 0x0 0x10000>, /* sai1 tx */ - <0x0 0x59350000 0x0 0x10000>, - <0x0 0x59370000 0x0 0x10000>; + <0x0 0x59300000 0x0 0x10000>, /* sai2 rx */ + <0x0 0x59310000 0x0 0x10000>; #dma-cells = <3>; shared-interrupt; dma-channels = <8>; @@ -47,13 +47,18 @@ , , /* sai1 */ , - , - ; + , + ; interrupt-names = "edma0-chan8-rx", "edma0-chan9-tx", /* spdif0 */ "edma0-chan12-rx", "edma0-chan13-tx", /* sai0 */ "edma0-chan14-rx", "edma0-chan15-tx", /* sai1 */ - "edma0-chan21-tx", /* gpt5 */ - "edma0-chan23-rx"; /* gpt7 */ + "edma0-chan16-rx", /* sai2 */ + "edma0-chan17-rx"; /* sai3 */ + pdomains = <&pd_dma0_chan8>, <&pd_dma0_chan9>, /* spdif0 */ + <&pd_dma0_chan12>, <&pd_dma0_chan13>, /* sai0 */ + <&pd_dma0_chan14>, <&pd_dma0_chan15>, /* sai1 */ + <&pd_dma0_chan16>, /* sai2 rx */ + <&pd_dma0_chan17>; /* sai3 rx */ status = "okay"; }; @@ -82,19 +87,69 @@ power-domains = <&pd_dsp>; }; +/delete-node/ &pd_dma0_chan0; +/delete-node/ &pd_dma0_chan1; +/delete-node/ &pd_dma0_chan2; +/delete-node/ &pd_dma0_chan3; +/delete-node/ &pd_dma0_chan4; +/delete-node/ &pd_dma0_chan5; /delete-node/ &pd_dma0_chan6; +/delete-node/ &pd_dma0_chan7; /delete-node/ &pd_dsp_mu_A; +/delete-node/ &pd_esai0; &pd_asrc0 { reg = ; - power-domains =<&pd_dma0_chan5>; + power-domains =<&pd_audio_clk1>; #power-domain-cells = <0>; #address-cells = <1>; #size-cells = <0>; + pd_dma0_chan0: PD_ASRC_0_RXA { + reg = ; + power-domains =<&pd_asrc0>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan1: PD_ASRC_0_RXB { + reg = ; + power-domains =<&pd_dma0_chan0>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan2: PD_ASRC_0_RXC { + reg = ; + power-domains =<&pd_dma0_chan1>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan3: PD_ASRC_0_TXA { + reg = ; + power-domains =<&pd_dma0_chan2>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan4: PD_ASRC_0_TXB { + reg = ; + power-domains =<&pd_dma0_chan3>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_dma0_chan5: PD_ASRC_0_TXC { + reg = ; + power-domains =<&pd_dma0_chan4>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + pd_dma0_chan6: PD_ESAI_0_RX { reg = ; - power-domains =<&pd_asrc0>; + power-domains =<&pd_dma0_chan5>; #power-domain-cells = <0>; #address-cells = <1>; #size-cells = <0>; @@ -144,6 +199,12 @@ }; }; }; + }; + }; + }; + }; + }; + }; }; &esai0 { -- 2.17.1