diff options
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8-ss-adma.dtsi | 758 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi | 434 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi | 342 | ||||
-rwxr-xr-x | arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 12 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8qxp-ss-adma.dtsi | 16 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/imx8qxp.dtsi | 8 |
6 files changed, 796 insertions, 774 deletions
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-adma.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-adma.dtsi index 9393e9bc5b94..841758bd2c8c 100644 --- a/arch/arm64/boot/dts/freescale/imx8-ss-adma.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8-ss-adma.dtsi @@ -4,759 +4,5 @@ * Dong Aisheng <aisheng.dong@nxp.com> */ -#include <dt-bindings/firmware/imx/rsrc.h> - -adma_subsys: bus@59000000 { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0x59000000 0x0 0x59000000 0x2000000>; - - dma_ipg_clk: clock-dma-ipg { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <120000000>; - clock-output-names = "dma_ipg_clk"; - }; - - edma0: dma-controller@591F0000 { - compatible = "fsl,imx8qm-edma"; - reg = <0x59200000 0x10000>, /* asrc0 */ - <0x59210000 0x10000>, - <0x59220000 0x10000>, - <0x59230000 0x10000>, - <0x59240000 0x10000>, - <0x59250000 0x10000>, - <0x59260000 0x10000>, /* esai0 rx */ - <0x59270000 0x10000>, /* esai0 tx */ - <0x59280000 0x10000>, /* spdif0 rx */ - <0x59290000 0x10000>, /* spdif0 tx */ - <0x592c0000 0x10000>, /* sai0 rx */ - <0x592d0000 0x10000>, /* sai0 tx */ - <0x592e0000 0x10000>, /* sai1 rx */ - <0x592f0000 0x10000>, /* sai1 tx */ - <0x59350000 0x10000>, - <0x59370000 0x10000>; - #dma-cells = <3>; - shared-interrupt; - dma-channels = <16>; - interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* asrc 0 */ - <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 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 391 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "edma0-chan0-rx", "edma0-chan1-rx", /* asrc0 */ - "edma0-chan2-rx", "edma0-chan3-tx", - "edma0-chan4-tx", "edma0-chan5-tx", - "edma0-chan6-rx", "edma0-chan7-tx", /* esai0 */ - "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 */ - status = "okay"; - }; - - edma1: dma-controller@599F0000 { - compatible = "fsl,imx8qm-edma"; - reg = <0x59A00000 0x10000>, /* asrc1 */ - <0x59A10000 0x10000>, - <0x59A20000 0x10000>, - <0x59A30000 0x10000>, - <0x59A40000 0x10000>, - <0x59A50000 0x10000>, - <0x59A80000 0x10000>, /* sai4 rx */ - <0x59A90000 0x10000>, /* sai4 tx */ - <0x59AA0000 0x10000>; /* sai5 tx */ - #dma-cells = <3>; - shared-interrupt; - dma-channels = <9>; - interrupts = <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>, /* asrc 1 */ - <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 330 IRQ_TYPE_LEVEL_HIGH>, /* sai4 */ - <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; /* sai5 */ - interrupt-names = "edma1-chan0-rx", "edma1-chan1-rx", /* asrc1 */ - "edma1-chan2-rx", "edma1-chan3-tx", - "edma1-chan4-tx", "edma1-chan5-tx", - "edma1-chan8-rx", "edma1-chan9-tx", /* sai4 */ - "edma1-chan10-tx"; /* sai5 */ - status = "okay"; - }; - - edma2: dma-controller@5a1f0000 { - compatible = "fsl,imx8qm-edma"; - reg = <0x5a280000 0x10000>, /* channel8 UART0 rx */ - <0x5a290000 0x10000>, /* channel9 UART0 tx */ - <0x5a2a0000 0x10000>, /* channel10 UART1 rx */ - <0x5a2b0000 0x10000>, /* channel11 UART1 tx */ - <0x5a2c0000 0x10000>, /* channel12 UART2 rx */ - <0x5a2d0000 0x10000>, /* channel13 UART2 tx */ - <0x5a2e0000 0x10000>, /* channel14 UART3 rx */ - <0x5a2f0000 0x10000>; /* channel15 UART3 tx */ - #dma-cells = <3>; - dma-channels = <8>; - interrupts = <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "edma2-chan8-rx", "edma2-chan9-tx", - "edma2-chan10-rx", "edma2-chan11-tx", - "edma2-chan12-rx", "edma2-chan13-tx", - "edma2-chan14-rx", "edma2-chan15-tx"; - status = "disabled"; - }; - - adma_lpspi0: spi@5a000000 { - compatible = "fsl,imx7ulp-spi"; - reg = <0x5a000000 0x10000>; - interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SPI0_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_SPI0_IPG_CLK>; - clock-names = "per", "ipg"; - assigned-clocks = <&clk IMX_ADMA_SPI0_CLK>; - assigned-clock-rates = <20000000>; - power-domains = <&pd IMX_SC_R_SPI_0>; - status = "disabled"; - }; - - adma_lpspi2: spi@5a020000 { - compatible = "fsl,imx7ulp-spi"; - reg = <0x5a020000 0x10000>; - interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SPI2_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_SPI2_IPG_CLK>; - clock-names = "per", "ipg"; - assigned-clocks = <&clk IMX_ADMA_SPI2_CLK>; - assigned-clock-rates = <20000000>; - power-domains = <&pd IMX_SC_R_SPI_2>; - status = "disabled"; - }; - - adma_lpuart0: serial@5a060000 { - reg = <0x5a060000 0x1000>; - interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&uart0_lpcg 1>, <&uart0_lpcg 0>; - clock-names = "ipg", "baud"; - assigned-clocks = <&clk IMX_ADMA_UART0_CLK>; - assigned-clock-rates = <80000000>; - power-domains = <&pd IMX_SC_R_UART_0>; - status = "disabled"; - }; - - adma_lpuart1: serial@5a070000 { - reg = <0x5a070000 0x1000>; - interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&uart1_lpcg 1>, <&uart1_lpcg 0>; - clock-names = "ipg", "baud"; - assigned-clocks = <&clk IMX_ADMA_UART1_CLK>; - assigned-clock-rates = <80000000>; - power-domains = <&pd IMX_SC_R_UART_1>, - <&pd IMX_SC_R_DMA_2_CH10>, - <&pd IMX_SC_R_DMA_2_CH11>; - power-domain-names = "uart", "rxdma", "txdma"; - dma-names = "tx","rx"; - dmas = <&edma2 11 0 0>, - <&edma2 10 0 1>; - status = "disabled"; - }; - - adma_lpuart2: serial@5a080000 { - reg = <0x5a080000 0x1000>; - interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&uart2_lpcg 1>, <&uart2_lpcg 0>; - clock-names = "ipg", "baud"; - assigned-clocks = <&clk IMX_ADMA_UART2_CLK>; - assigned-clock-rates = <80000000>; - power-domains = <&pd IMX_SC_R_UART_2>, - <&pd IMX_SC_R_DMA_2_CH12>, - <&pd IMX_SC_R_DMA_2_CH13>; - power-domain-names = "uart", "rxdma", "txdma"; - dma-names = "tx","rx"; - dmas = <&edma2 13 0 0>, - <&edma2 12 0 1>; - status = "disabled"; - }; - - adma_lpuart3: serial@5a090000 { - reg = <0x5a090000 0x1000>; - interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&uart3_lpcg 1>, <&uart3_lpcg 0>; - clock-names = "ipg", "baud"; - assigned-clocks = <&clk IMX_ADMA_UART3_CLK>; - assigned-clock-rates = <80000000>; - power-domains = <&pd IMX_SC_R_UART_3>, - <&pd IMX_SC_R_DMA_2_CH14>, - <&pd IMX_SC_R_DMA_2_CH15>; - power-domain-names = "uart", "rxdma", "txdma"; - dma-names = "tx","rx"; - dmas = <&edma2 15 0 0>, - <&edma2 14 0 1>; - status = "disabled"; - }; - - uart0_lpcg: clock-controller@5a460000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5a460000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "uart0_lpcg_baud_clk", - "uart0_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_UART_0>; - }; - - uart1_lpcg: clock-controller@5a470000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5a470000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "uart1_lpcg_baud_clk", - "uart1_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_UART_1>; - }; - - uart2_lpcg: clock-controller@5a480000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5a480000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "uart2_lpcg_baud_clk", - "uart2_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_UART_2>; - }; - - uart3_lpcg: clock-controller@5a490000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5a490000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "uart3_lpcg_baud_clk", - "uart3_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_UART_3>; - }; - - adma_i2c0: i2c@5a800000 { - reg = <0x5a800000 0x4000>; - interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&i2c0_lpcg 0>; - clock-names = "per"; - assigned-clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>; - assigned-clock-rates = <24000000>; - power-domains = <&pd IMX_SC_R_I2C_0>; - status = "disabled"; - }; - - adma_i2c1: i2c@5a810000 { - reg = <0x5a810000 0x4000>; - interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&i2c1_lpcg 0>; - clock-names = "per"; - assigned-clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>; - assigned-clock-rates = <24000000>; - power-domains = <&pd IMX_SC_R_I2C_1>; - status = "disabled"; - }; - - adma_i2c2: i2c@5a820000 { - reg = <0x5a820000 0x4000>; - interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&i2c2_lpcg 0>; - clock-names = "per"; - assigned-clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>; - assigned-clock-rates = <24000000>; - power-domains = <&pd IMX_SC_R_I2C_2>; - status = "disabled"; - }; - - adma_i2c3: i2c@5a830000 { - reg = <0x5a830000 0x4000>; - interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&i2c3_lpcg 0>; - clock-names = "per"; - assigned-clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>; - assigned-clock-rates = <24000000>; - power-domains = <&pd IMX_SC_R_I2C_3>; - status = "disabled"; - }; - - flexcan1: can@5a8d0000 { - compatible = "fsl,imx8qxp-flexcan", "fsl,imx8qm-flexcan"; - reg = <0x5a8d0000 0x10000>; - interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_PE_CLK>; - clock-names = "ipg", "per"; - assigned-clocks = <&clk IMX_ADMA_CAN0_CLK>; - assigned-clock-rates = <40000000>; - power-domains = <&pd IMX_SC_R_CAN_0>; - /* SLSlice[4] */ - fsl,clk-source= <0>; - status = "disabled"; - }; - - flexcan2: can@5a8e0000 { - compatible = "fsl,imx8qxp-flexcan", "fsl,imx8qm-flexcan"; - reg = <0x5a8e0000 0x10000>; - interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_PE_CLK>; - clock-names = "ipg", "per"; - assigned-clocks = <&clk IMX_ADMA_CAN0_CLK>; - assigned-clock-rates = <40000000>; - /* CAN1 shares CAN0's clock, to enable CAN0's clock it has - * to be powered on, so CAN1 depends on CAN0's power domain. - */ - power-domains = <&pd IMX_SC_R_CAN_1>, <&pd IMX_SC_R_CAN_0>; - power-domain-names = "can_pd", "can_aux_pd"; - /* SLSlice[4] */ - fsl,clk-source = <0>; - status = "disabled"; - }; - - flexcan3: can@5a8f0000 { - compatible = "fsl,imx8qxp-flexcan", "fsl,imx8qm-flexcan"; - reg = <0x5a8f0000 0x10000>; - interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>; - interrupt-parent = <&gic>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_PE_CLK>; - clock-names = "ipg", "per"; - assigned-clocks = <&clk IMX_ADMA_CAN0_CLK>; - assigned-clock-rates = <40000000>; - /* CAN2 shares CAN0's clock, to enable CAN0's clock it has - * to be powered on, so CAN2 depends on CAN0's power domain. - */ - power-domains = <&pd IMX_SC_R_CAN_2>, <&pd IMX_SC_R_CAN_0>; - power-domain-names = "can_pd", "can_aux_pd"; - /* SLSlice[4] */ - fsl,clk-source = <0>; - status = "disabled"; - }; - - adma_acm: acm@59e00000 { - compatible = "nxp,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>; - }; - - adma_dsp: dsp@596e8000 { - compatible = "fsl,imx8qxp-dsp"; - reg = <0x596e8000 0x88000>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_DSP_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; - clock-names = "ipg", "ocram", "core"; - fsl,dsp-firmware = "imx/dsp/hifi4.bin"; - 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>; - reserved-region = <&dsp_reserved>; - status = "disabled"; - }; - - adma_asrc0: asrc@59000000 { - compatible = "fsl,imx8qm-asrc0"; - reg = <0x59000000 0x10000>; - interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_ASRC_0_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK0_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK1_CLK>, - <&adma_acm IMX_ADMA_ACM_AUD_CLK0_SEL>, - <&adma_acm IMX_ADMA_ACM_AUD_CLK1_SEL>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>; - clock-names = "ipg", "mem", - "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 1>, <&edma0 4 0 1>, <&edma0 5 0 1>; - dma-names = "rxa", "rxb", "rxc", - "txa", "txb", "txc"; - fsl,asrc-rate = <8000>; - fsl,asrc-width = <16>; - power-domains = <&pd IMX_SC_R_ASRC_0>, - <&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_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_esai0: esai@59010000 { - compatible = "fsl,imx8qm-esai"; - reg = <0x59010000 0x10000>; - interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_ESAI_0_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_ESAI_0_EXTAL_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_ESAI_0_IPG_CLK>, - <&clk IMX_CLK_DUMMY>; - clock-names = "core", "extal", "fsys", "spba"; - dmas = <&edma0 6 0 1>, <&edma0 7 0 0>; - dma-names = "rx", "tx"; - power-domains = <&pd IMX_SC_R_ESAI_0>, - <&pd IMX_SC_R_DMA_0_CH6>, - <&pd IMX_SC_R_DMA_0_CH7>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_spdif0: spdif@59020000 { - compatible = "fsl,imx8qm-spdif"; - reg = <0x59020000 0x10000>; - interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, /* rx */ - <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>; /* tx */ - clocks = <&adma_lpcg IMX_ADMA_LPCG_SPDIF_0_GCLKW>, /* core */ - <&clk IMX_CLK_DUMMY>, /* rxtx0 */ - <&adma_lpcg IMX_ADMA_LPCG_SPDIF_0_TX_CLK>, /* rxtx1 */ - <&clk IMX_CLK_DUMMY>, /* rxtx2 */ - <&clk IMX_CLK_DUMMY>, /* rxtx3 */ - <&clk IMX_CLK_DUMMY>, /* rxtx4 */ - <&clk IMX_ADMA_IPG_CLK_ROOT>, /* rxtx5 */ - <&clk IMX_CLK_DUMMY>, /* rxtx6 */ - <&clk IMX_CLK_DUMMY>, /* rxtx7 */ - <&clk IMX_CLK_DUMMY>; /* spba */ - clock-names = "core", "rxtx0", - "rxtx1", "rxtx2", - "rxtx3", "rxtx4", - "rxtx5", "rxtx6", - "rxtx7", "spba"; - dmas = <&edma0 8 0 5>, <&edma0 9 0 4>; - dma-names = "rx", "tx"; - power-domains = <&pd IMX_SC_R_SPDIF_0>, - <&pd IMX_SC_R_DMA_0_CH8>, - <&pd IMX_SC_R_DMA_0_CH9>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_sai0: sai@59040000 { - compatible = "fsl,imx8qm-sai"; - reg = <0x59040000 0x10000>; - interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_0_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_SAI_0_MCLK>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_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>, - <&pd IMX_SC_R_DMA_0_CH12>, - <&pd IMX_SC_R_DMA_0_CH13>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_sai1: sai@59050000 { - compatible = "fsl,imx8qm-sai"; - reg = <0x59050000 0x10000>; - interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_1_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_SAI_1_MCLK>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_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>, - <&pd IMX_SC_R_DMA_0_CH14>, - <&pd IMX_SC_R_DMA_0_CH15>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_sai2: sai@59060000 { - compatible = "fsl,imx8qm-sai"; - reg = <0x59060000 0x10000>; - interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_2_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_SAI_2_MCLK>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_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>, - <&pd IMX_SC_R_DMA_0_CH16>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_sai3: sai@59070000 { - compatible = "fsl,imx8qm-sai"; - reg = <0x59070000 0x10000>; - interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_3_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_SAI_3_MCLK>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_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>, - <&pd IMX_SC_R_DMA_0_CH17>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_asrc1: asrc@59800000 { - compatible = "fsl,imx8qm-asrc1"; - reg = <0x59800000 0x10000>; - interrupts = <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_ASRC_0_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK0_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK1_CLK>, - <&adma_acm IMX_ADMA_ACM_AUD_CLK0_SEL>, - <&adma_acm IMX_ADMA_ACM_AUD_CLK1_SEL>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>; - clock-names = "ipg", "mem", - "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 1>, <&edma1 4 0 1>, <&edma1 5 0 1>; - dma-names = "rxa", "rxb", "rxc", - "txa", "txb", "txc"; - fsl,asrc-rate = <8000>; - fsl,asrc-width = <16>; - power-domains = <&pd IMX_SC_R_ASRC_1>, - <&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_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_sai4: sai@59820000 { - compatible = "fsl,imx8qm-sai"; - reg = <0x59820000 0x10000>; - interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_4_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_SAI_4_MCLK>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_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_4>, - <&pd IMX_SC_R_DMA_1_CH8>, - <&pd IMX_SC_R_DMA_1_CH9>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_sai5: sai@59830000 { - compatible = "fsl,imx8qm-sai"; - reg = <0x59830000 0x10000>; - interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_5_IPG_CLK>, - <&clk IMX_CLK_DUMMY>, - <&adma_lpcg IMX_ADMA_LPCG_SAI_5_MCLK>, - <&clk IMX_CLK_DUMMY>, - <&clk IMX_CLK_DUMMY>; - clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; - dma-names = "tx"; - dmas = <&edma1 10 0 0>; - power-domains = <&pd IMX_SC_R_SAI_5>, - <&pd IMX_SC_R_DMA_1_CH10>, - <&pd IMX_SC_R_AUDIO_CLK_0>, - <&pd IMX_SC_R_AUDIO_CLK_1>, - <&pd IMX_SC_R_AUDIO_PLL_0>, - <&pd IMX_SC_R_AUDIO_PLL_1>; - status = "disabled"; - }; - - adma_amix: amix@59840000 { - compatible = "fsl,imx8qm-amix"; - reg = <0x59840000 0x10000>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_AMIX_IPG_CLK>; - clock-names = "ipg"; - power-domains = <&pd IMX_SC_R_AMIX>; - status = "disabled"; - }; - - adma_mqs: mqs@59850000 { - compatible = "fsl,imx8qm-mqs"; - reg = <0x59850000 0x10000>; - clocks = <&adma_lpcg IMX_ADMA_LPCG_MQS_IPG_CLK>, - <&adma_lpcg IMX_ADMA_LPCG_MQS_MCLK>; - clock-names = "core", "mclk"; - power-domains = <&pd IMX_SC_R_MQS_0>; - status = "disabled"; - }; - - i2c0_lpcg: clock-controller@5ac00000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5ac00000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "i2c0_lpcg_clk", - "i2c0_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_I2C_0>; - }; - - i2c1_lpcg: clock-controller@5ac10000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5ac10000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "i2c1_lpcg_clk", - "i2c1_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_I2C_1>; - }; - - i2c2_lpcg: clock-controller@5ac20000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5ac20000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "i2c2_lpcg_clk", - "i2c2_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_I2C_2>; - }; - - i2c3_lpcg: clock-controller@5ac30000 { - compatible = "fsl,imx8qxp-lpcg"; - reg = <0x5ac30000 0x10000>; - #clock-cells = <1>; - clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>, - <&dma_ipg_clk>; - bit-offset = <0 16>; - clock-output-names = "i2c3_lpcg_clk", - "i2c3_lpcg_ipg_clk"; - power-domains = <&pd IMX_SC_R_I2C_3>; - }; -}; +#include "imx8-ss-audio.dtsi" +#include "imx8-ss-dma.dtsi" diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi new file mode 100644 index 000000000000..64dcd6d05bdf --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi @@ -0,0 +1,434 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2018-2019 NXP + * Dong Aisheng <aisheng.dong@nxp.com> + */ + +#include <dt-bindings/firmware/imx/rsrc.h> + +audio_subsys: bus@59000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x59000000 0x0 0x59000000 0x1000000>; + + edma0: dma-controller@591F0000 { + compatible = "fsl,imx8qm-edma"; + reg = <0x59200000 0x10000>, /* asrc0 */ + <0x59210000 0x10000>, + <0x59220000 0x10000>, + <0x59230000 0x10000>, + <0x59240000 0x10000>, + <0x59250000 0x10000>, + <0x59260000 0x10000>, /* esai0 rx */ + <0x59270000 0x10000>, /* esai0 tx */ + <0x59280000 0x10000>, /* spdif0 rx */ + <0x59290000 0x10000>, /* spdif0 tx */ + <0x592c0000 0x10000>, /* sai0 rx */ + <0x592d0000 0x10000>, /* sai0 tx */ + <0x592e0000 0x10000>, /* sai1 rx */ + <0x592f0000 0x10000>, /* sai1 tx */ + <0x59350000 0x10000>, + <0x59370000 0x10000>; + #dma-cells = <3>; + shared-interrupt; + dma-channels = <16>; + interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* asrc 0 */ + <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 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 391 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "edma0-chan0-rx", "edma0-chan1-rx", /* asrc0 */ + "edma0-chan2-rx", "edma0-chan3-tx", + "edma0-chan4-tx", "edma0-chan5-tx", + "edma0-chan6-rx", "edma0-chan7-tx", /* esai0 */ + "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 */ + status = "okay"; + }; + + edma1: dma-controller@599F0000 { + compatible = "fsl,imx8qm-edma"; + reg = <0x59A00000 0x10000>, /* asrc1 */ + <0x59A10000 0x10000>, + <0x59A20000 0x10000>, + <0x59A30000 0x10000>, + <0x59A40000 0x10000>, + <0x59A50000 0x10000>, + <0x59A80000 0x10000>, /* sai4 rx */ + <0x59A90000 0x10000>, /* sai4 tx */ + <0x59AA0000 0x10000>; /* sai5 tx */ + #dma-cells = <3>; + shared-interrupt; + dma-channels = <9>; + interrupts = <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>, /* asrc 1 */ + <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 330 IRQ_TYPE_LEVEL_HIGH>, /* sai4 */ + <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; /* sai5 */ + interrupt-names = "edma1-chan0-rx", "edma1-chan1-rx", /* asrc1 */ + "edma1-chan2-rx", "edma1-chan3-tx", + "edma1-chan4-tx", "edma1-chan5-tx", + "edma1-chan8-rx", "edma1-chan9-tx", /* sai4 */ + "edma1-chan10-tx"; /* sai5 */ + status = "okay"; + }; + + adma_acm: acm@59e00000 { + compatible = "nxp,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>; + }; + + adma_dsp: dsp@596e8000 { + compatible = "fsl,imx8qxp-dsp"; + reg = <0x596e8000 0x88000>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_DSP_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_OCRAM_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_DSP_CORE_CLK>; + clock-names = "ipg", "ocram", "core"; + fsl,dsp-firmware = "imx/dsp/hifi4.bin"; + 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>; + reserved-region = <&dsp_reserved>; + status = "disabled"; + }; + + adma_asrc0: asrc@59000000 { + compatible = "fsl,imx8qm-asrc0"; + reg = <0x59000000 0x10000>; + interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_ASRC_0_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK0_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK1_CLK>, + <&adma_acm IMX_ADMA_ACM_AUD_CLK0_SEL>, + <&adma_acm IMX_ADMA_ACM_AUD_CLK1_SEL>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>; + clock-names = "ipg", "mem", + "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 1>, <&edma0 4 0 1>, <&edma0 5 0 1>; + dma-names = "rxa", "rxb", "rxc", + "txa", "txb", "txc"; + fsl,asrc-rate = <8000>; + fsl,asrc-width = <16>; + power-domains = <&pd IMX_SC_R_ASRC_0>, + <&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_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_esai0: esai@59010000 { + compatible = "fsl,imx8qm-esai"; + reg = <0x59010000 0x10000>; + interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_ESAI_0_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_ESAI_0_EXTAL_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_ESAI_0_IPG_CLK>, + <&clk IMX_CLK_DUMMY>; + clock-names = "core", "extal", "fsys", "spba"; + dmas = <&edma0 6 0 1>, <&edma0 7 0 0>; + dma-names = "rx", "tx"; + power-domains = <&pd IMX_SC_R_ESAI_0>, + <&pd IMX_SC_R_DMA_0_CH6>, + <&pd IMX_SC_R_DMA_0_CH7>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_spdif0: spdif@59020000 { + compatible = "fsl,imx8qm-spdif"; + reg = <0x59020000 0x10000>; + interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, /* rx */ + <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>; /* tx */ + clocks = <&adma_lpcg IMX_ADMA_LPCG_SPDIF_0_GCLKW>, /* core */ + <&clk IMX_CLK_DUMMY>, /* rxtx0 */ + <&adma_lpcg IMX_ADMA_LPCG_SPDIF_0_TX_CLK>, /* rxtx1 */ + <&clk IMX_CLK_DUMMY>, /* rxtx2 */ + <&clk IMX_CLK_DUMMY>, /* rxtx3 */ + <&clk IMX_CLK_DUMMY>, /* rxtx4 */ + <&clk IMX_ADMA_IPG_CLK_ROOT>, /* rxtx5 */ + <&clk IMX_CLK_DUMMY>, /* rxtx6 */ + <&clk IMX_CLK_DUMMY>, /* rxtx7 */ + <&clk IMX_CLK_DUMMY>; /* spba */ + clock-names = "core", "rxtx0", + "rxtx1", "rxtx2", + "rxtx3", "rxtx4", + "rxtx5", "rxtx6", + "rxtx7", "spba"; + dmas = <&edma0 8 0 5>, <&edma0 9 0 4>; + dma-names = "rx", "tx"; + power-domains = <&pd IMX_SC_R_SPDIF_0>, + <&pd IMX_SC_R_DMA_0_CH8>, + <&pd IMX_SC_R_DMA_0_CH9>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_sai0: sai@59040000 { + compatible = "fsl,imx8qm-sai"; + reg = <0x59040000 0x10000>; + interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_0_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_SAI_0_MCLK>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_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>, + <&pd IMX_SC_R_DMA_0_CH12>, + <&pd IMX_SC_R_DMA_0_CH13>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_sai1: sai@59050000 { + compatible = "fsl,imx8qm-sai"; + reg = <0x59050000 0x10000>; + interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_1_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_SAI_1_MCLK>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_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>, + <&pd IMX_SC_R_DMA_0_CH14>, + <&pd IMX_SC_R_DMA_0_CH15>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_sai2: sai@59060000 { + compatible = "fsl,imx8qm-sai"; + reg = <0x59060000 0x10000>; + interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_2_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_SAI_2_MCLK>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_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>, + <&pd IMX_SC_R_DMA_0_CH16>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_sai3: sai@59070000 { + compatible = "fsl,imx8qm-sai"; + reg = <0x59070000 0x10000>; + interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_3_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_SAI_3_MCLK>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_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>, + <&pd IMX_SC_R_DMA_0_CH17>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_asrc1: asrc@59800000 { + compatible = "fsl,imx8qm-asrc1"; + reg = <0x59800000 0x10000>; + interrupts = <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_ASRC_0_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK0_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_AUD_PLL_DIV_CLK1_CLK>, + <&adma_acm IMX_ADMA_ACM_AUD_CLK0_SEL>, + <&adma_acm IMX_ADMA_ACM_AUD_CLK1_SEL>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>; + clock-names = "ipg", "mem", + "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 1>, <&edma1 4 0 1>, <&edma1 5 0 1>; + dma-names = "rxa", "rxb", "rxc", + "txa", "txb", "txc"; + fsl,asrc-rate = <8000>; + fsl,asrc-width = <16>; + power-domains = <&pd IMX_SC_R_ASRC_1>, + <&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_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_sai4: sai@59820000 { + compatible = "fsl,imx8qm-sai"; + reg = <0x59820000 0x10000>; + interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_4_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_SAI_4_MCLK>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_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_4>, + <&pd IMX_SC_R_DMA_1_CH8>, + <&pd IMX_SC_R_DMA_1_CH9>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_sai5: sai@59830000 { + compatible = "fsl,imx8qm-sai"; + reg = <0x59830000 0x10000>; + interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SAI_5_IPG_CLK>, + <&clk IMX_CLK_DUMMY>, + <&adma_lpcg IMX_ADMA_LPCG_SAI_5_MCLK>, + <&clk IMX_CLK_DUMMY>, + <&clk IMX_CLK_DUMMY>; + clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; + dma-names = "tx"; + dmas = <&edma1 10 0 0>; + power-domains = <&pd IMX_SC_R_SAI_5>, + <&pd IMX_SC_R_DMA_1_CH10>, + <&pd IMX_SC_R_AUDIO_CLK_0>, + <&pd IMX_SC_R_AUDIO_CLK_1>, + <&pd IMX_SC_R_AUDIO_PLL_0>, + <&pd IMX_SC_R_AUDIO_PLL_1>; + status = "disabled"; + }; + + adma_amix: amix@59840000 { + compatible = "fsl,imx8qm-amix"; + reg = <0x59840000 0x10000>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_AMIX_IPG_CLK>; + clock-names = "ipg"; + power-domains = <&pd IMX_SC_R_AMIX>; + status = "disabled"; + }; + + adma_mqs: mqs@59850000 { + compatible = "fsl,imx8qm-mqs"; + reg = <0x59850000 0x10000>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_MQS_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_MQS_MCLK>; + clock-names = "core", "mclk"; + power-domains = <&pd IMX_SC_R_MQS_0>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi new file mode 100644 index 000000000000..2ab6cf556628 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8-ss-dma.dtsi @@ -0,0 +1,342 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2018-2019 NXP + * Dong Aisheng <aisheng.dong@nxp.com> + */ + +#include <dt-bindings/firmware/imx/rsrc.h> + +dma_subsys: bus@5a000000 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x5a000000 0x0 0x5a000000 0x1000000>; + + dma_ipg_clk: clock-dma-ipg { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <120000000>; + clock-output-names = "dma_ipg_clk"; + }; + + lpspi0: spi@5a000000 { + compatible = "fsl,imx7ulp-spi"; + reg = <0x5a000000 0x10000>; + interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SPI0_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_SPI0_IPG_CLK>; + clock-names = "per", "ipg"; + assigned-clocks = <&clk IMX_ADMA_SPI0_CLK>; + assigned-clock-rates = <20000000>; + power-domains = <&pd IMX_SC_R_SPI_0>; + status = "disabled"; + }; + + lpspi2: spi@5a020000 { + compatible = "fsl,imx7ulp-spi"; + reg = <0x5a020000 0x10000>; + interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_SPI2_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_SPI2_IPG_CLK>; + clock-names = "per", "ipg"; + assigned-clocks = <&clk IMX_ADMA_SPI2_CLK>; + assigned-clock-rates = <20000000>; + power-domains = <&pd IMX_SC_R_SPI_2>; + status = "disabled"; + }; + + lpuart0: serial@5a060000 { + reg = <0x5a060000 0x1000>; + interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&uart0_lpcg 1>, <&uart0_lpcg 0>; + clock-names = "ipg", "baud"; + assigned-clocks = <&clk IMX_ADMA_UART0_CLK>; + assigned-clock-rates = <80000000>; + power-domains = <&pd IMX_SC_R_UART_0>; + status = "disabled"; + }; + + lpuart1: serial@5a070000 { + reg = <0x5a070000 0x1000>; + interrupts = <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&uart1_lpcg 1>, <&uart1_lpcg 0>; + clock-names = "ipg", "baud"; + assigned-clocks = <&clk IMX_ADMA_UART1_CLK>; + assigned-clock-rates = <80000000>; + power-domains = <&pd IMX_SC_R_UART_1>, + <&pd IMX_SC_R_DMA_2_CH10>, + <&pd IMX_SC_R_DMA_2_CH11>; + power-domain-names = "uart", "rxdma", "txdma"; + dma-names = "tx","rx"; + dmas = <&edma2 11 0 0>, + <&edma2 10 0 1>; + status = "disabled"; + }; + + lpuart2: serial@5a080000 { + reg = <0x5a080000 0x1000>; + interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&uart2_lpcg 1>, <&uart2_lpcg 0>; + clock-names = "ipg", "baud"; + assigned-clocks = <&clk IMX_ADMA_UART2_CLK>; + assigned-clock-rates = <80000000>; + power-domains = <&pd IMX_SC_R_UART_2>, + <&pd IMX_SC_R_DMA_2_CH12>, + <&pd IMX_SC_R_DMA_2_CH13>; + power-domain-names = "uart", "rxdma", "txdma"; + dma-names = "tx","rx"; + dmas = <&edma2 13 0 0>, + <&edma2 12 0 1>; + status = "disabled"; + }; + + lpuart3: serial@5a090000 { + reg = <0x5a090000 0x1000>; + interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&uart3_lpcg 1>, <&uart3_lpcg 0>; + clock-names = "ipg", "baud"; + assigned-clocks = <&clk IMX_ADMA_UART3_CLK>; + assigned-clock-rates = <80000000>; + power-domains = <&pd IMX_SC_R_UART_3>, + <&pd IMX_SC_R_DMA_2_CH14>, + <&pd IMX_SC_R_DMA_2_CH15>; + power-domain-names = "uart", "rxdma", "txdma"; + dma-names = "tx","rx"; + dmas = <&edma2 15 0 0>, + <&edma2 14 0 1>; + status = "disabled"; + }; + + edma2: dma-controller@5a1f0000 { + compatible = "fsl,imx8qm-edma"; + reg = <0x5a280000 0x10000>, /* channel8 UART0 rx */ + <0x5a290000 0x10000>, /* channel9 UART0 tx */ + <0x5a2a0000 0x10000>, /* channel10 UART1 rx */ + <0x5a2b0000 0x10000>, /* channel11 UART1 tx */ + <0x5a2c0000 0x10000>, /* channel12 UART2 rx */ + <0x5a2d0000 0x10000>, /* channel13 UART2 tx */ + <0x5a2e0000 0x10000>, /* channel14 UART3 rx */ + <0x5a2f0000 0x10000>; /* channel15 UART3 tx */ + #dma-cells = <3>; + dma-channels = <8>; + interrupts = <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "edma2-chan8-rx", "edma2-chan9-tx", + "edma2-chan10-rx", "edma2-chan11-tx", + "edma2-chan12-rx", "edma2-chan13-tx", + "edma2-chan14-rx", "edma2-chan15-tx"; + status = "disabled"; + }; + + uart0_lpcg: clock-controller@5a460000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5a460000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "uart0_lpcg_baud_clk", + "uart0_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_UART_0>; + }; + + uart1_lpcg: clock-controller@5a470000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5a470000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "uart1_lpcg_baud_clk", + "uart1_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_UART_1>; + }; + + uart2_lpcg: clock-controller@5a480000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5a480000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "uart2_lpcg_baud_clk", + "uart2_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_UART_2>; + }; + + uart3_lpcg: clock-controller@5a490000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5a490000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "uart3_lpcg_baud_clk", + "uart3_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_UART_3>; + }; + + i2c0: i2c@5a800000 { + reg = <0x5a800000 0x4000>; + interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&i2c0_lpcg 0>; + clock-names = "per"; + assigned-clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>; + assigned-clock-rates = <24000000>; + power-domains = <&pd IMX_SC_R_I2C_0>; + status = "disabled"; + }; + + i2c1: i2c@5a810000 { + reg = <0x5a810000 0x4000>; + interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&i2c1_lpcg 0>; + clock-names = "per"; + assigned-clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>; + assigned-clock-rates = <24000000>; + power-domains = <&pd IMX_SC_R_I2C_1>; + status = "disabled"; + }; + + i2c2: i2c@5a820000 { + reg = <0x5a820000 0x4000>; + interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&i2c2_lpcg 0>; + clock-names = "per"; + assigned-clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>; + assigned-clock-rates = <24000000>; + power-domains = <&pd IMX_SC_R_I2C_2>; + status = "disabled"; + }; + + i2c3: i2c@5a830000 { + reg = <0x5a830000 0x4000>; + interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&i2c3_lpcg 0>; + clock-names = "per"; + assigned-clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>; + assigned-clock-rates = <24000000>; + power-domains = <&pd IMX_SC_R_I2C_3>; + status = "disabled"; + }; + + flexcan1: can@5a8d0000 { + compatible = "fsl,imx8qxp-flexcan", "fsl,imx8qm-flexcan"; + reg = <0x5a8d0000 0x10000>; + interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_PE_CLK>; + clock-names = "ipg", "per"; + assigned-clocks = <&clk IMX_ADMA_CAN0_CLK>; + assigned-clock-rates = <40000000>; + power-domains = <&pd IMX_SC_R_CAN_0>; + /* SLSlice[4] */ + fsl,clk-source= <0>; + status = "disabled"; + }; + + flexcan2: can@5a8e0000 { + compatible = "fsl,imx8qxp-flexcan", "fsl,imx8qm-flexcan"; + reg = <0x5a8e0000 0x10000>; + interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_PE_CLK>; + clock-names = "ipg", "per"; + assigned-clocks = <&clk IMX_ADMA_CAN0_CLK>; + assigned-clock-rates = <40000000>; + /* CAN1 shares CAN0's clock, to enable CAN0's clock it has + * to be powered on, so CAN1 depends on CAN0's power domain. + */ + power-domains = <&pd IMX_SC_R_CAN_1>, <&pd IMX_SC_R_CAN_0>; + power-domain-names = "can_pd", "can_aux_pd"; + /* SLSlice[4] */ + fsl,clk-source = <0>; + status = "disabled"; + }; + + flexcan3: can@5a8f0000 { + compatible = "fsl,imx8qxp-flexcan", "fsl,imx8qm-flexcan"; + reg = <0x5a8f0000 0x10000>; + interrupts = <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gic>; + clocks = <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_CLK>, + <&adma_lpcg IMX_ADMA_LPCG_CAN0_IPG_PE_CLK>; + clock-names = "ipg", "per"; + assigned-clocks = <&clk IMX_ADMA_CAN0_CLK>; + assigned-clock-rates = <40000000>; + /* CAN2 shares CAN0's clock, to enable CAN0's clock it has + * to be powered on, so CAN2 depends on CAN0's power domain. + */ + power-domains = <&pd IMX_SC_R_CAN_2>, <&pd IMX_SC_R_CAN_0>; + power-domain-names = "can_pd", "can_aux_pd"; + /* SLSlice[4] */ + fsl,clk-source = <0>; + status = "disabled"; + }; + + i2c0_lpcg: clock-controller@5ac00000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5ac00000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_I2C_0 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "i2c0_lpcg_clk", + "i2c0_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_I2C_0>; + }; + + i2c1_lpcg: clock-controller@5ac10000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5ac10000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_I2C_1 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "i2c1_lpcg_clk", + "i2c1_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_I2C_1>; + }; + + i2c2_lpcg: clock-controller@5ac20000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5ac20000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_I2C_2 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "i2c2_lpcg_clk", + "i2c2_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_I2C_2>; + }; + + i2c3_lpcg: clock-controller@5ac30000 { + compatible = "fsl,imx8qxp-lpcg"; + reg = <0x5ac30000 0x10000>; + #clock-cells = <1>; + clocks = <&clk IMX_SC_R_I2C_3 IMX_SC_PM_CLK_PER>, + <&dma_ipg_clk>; + bit-offset = <0 16>; + clock-output-names = "i2c3_lpcg_clk", + "i2c3_lpcg_ipg_clk"; + power-domains = <&pd IMX_SC_R_I2C_3>; + }; +}; diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts index ee00202bd311..9c84117d3ba0 100755 --- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts +++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts @@ -12,7 +12,7 @@ compatible = "fsl,imx8qxp-mek", "fsl,imx8qxp"; chosen { - stdout-path = &adma_lpuart0; + stdout-path = &lpuart0; }; memory@80000000 { @@ -365,25 +365,25 @@ }; }; -&adma_lpuart0 { +&lpuart0 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart0>; status = "okay"; }; -&adma_lpuart1 { +&lpuart1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart1>; status = "okay"; }; -&adma_lpuart2 { +&lpuart2 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart2>; status = "okay"; }; -&adma_lpuart3 { +&lpuart3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lpuart3>; status = "okay"; @@ -529,7 +529,7 @@ }; }; -&adma_i2c1 { +&i2c1 { #address-cells = <1>; #size-cells = <0>; clock-frequency = <100000>; diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-ss-adma.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp-ss-adma.dtsi index c80303d5cc78..f0264f04f986 100644 --- a/arch/arm64/boot/dts/freescale/imx8qxp-ss-adma.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8qxp-ss-adma.dtsi @@ -4,34 +4,34 @@ * Dong Aisheng <aisheng.dong@nxp.com> */ -&adma_lpuart0 { +&lpuart0 { compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; }; -&adma_lpuart1 { +&lpuart1 { compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; }; -&adma_lpuart2 { +&lpuart2 { compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; }; -&adma_lpuart3 { +&lpuart3 { compatible = "fsl,imx8qxp-lpuart", "fsl,imx7ulp-lpuart"; }; -&adma_i2c0 { +&i2c0 { compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c"; }; -&adma_i2c1 { +&i2c1 { compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c"; }; -&adma_i2c2 { +&i2c2 { compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c"; }; -&adma_i2c3 { +&i2c3 { compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c"; }; diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi index 156f9a8f2e70..d462591d2f04 100644 --- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi @@ -33,10 +33,10 @@ mmc1 = &usdhc2; mmc2 = &usdhc3; mu1 = &lsio_mu1; - serial0 = &adma_lpuart0; - serial1 = &adma_lpuart1; - serial2 = &adma_lpuart2; - serial3 = &adma_lpuart3; + serial0 = &lpuart0; + serial1 = &lpuart1; + serial2 = &lpuart2; + serial3 = &lpuart3; isi0 = &isi_0; isi1 = &isi_1; isi2 = &isi_2; |