]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx8mp: Add SAI, SDMA, AudioMIX
authorMarek Vasut <marex@denx.de>
Mon, 8 May 2023 11:42:35 +0000 (13:42 +0200)
committerShawn Guo <shawnguo@kernel.org>
Mon, 15 May 2023 01:40:57 +0000 (09:40 +0800)
Add all SAI nodes, SDMA2 and SDMA3 nodes, and AudioMIX node. This is
needed to get audio operational on i.MX8MP .

Acked-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Tested-by: Adam Ford <aford173@gmail.com> #imx8mp-beacon-kit
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Tested-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Tested-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mp.dtsi

index 8d26bd3ceb2560411db96181215813ddd29f6c82..245c560674de7745dba28d09827c67b125fe0749 100644 (file)
                                                reg = <IMX8MP_POWER_DOMAIN_USB2_PHY>;
                                        };
 
+                                       pgc_audio: power-domain@5 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>;
+                                               clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
+                                                        <&clk IMX8MP_CLK_AUDIO_AXI>;
+                                       };
+
                                        pgc_gpu2d: power-domain@6 {
                                                #power-domain-cells = <0>;
                                                reg = <IMX8MP_POWER_DOMAIN_GPU2D>;
                        };
                };
 
+               aips5: bus@30c00000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       reg = <0x30c00000 0x400000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       spba-bus@30c00000 {
+                               compatible = "fsl,spba-bus", "simple-bus";
+                               reg = <0x30c00000 0x100000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges;
+
+                               sai1: sai@30c10000 {
+                                       compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
+                                       reg = <0x30c10000 0x10000>;
+                                       #sound-dai-cells = <0>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_IPG>,
+                                                <&clk IMX8MP_CLK_DUMMY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK2>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK3>;
+                                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                                       dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
+                                       dma-names = "rx", "tx";
+                                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                                       status = "disabled";
+                               };
+
+                               sai2: sai@30c20000 {
+                                       compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
+                                       reg = <0x30c20000 0x10000>;
+                                       #sound-dai-cells = <0>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_IPG>,
+                                                <&clk IMX8MP_CLK_DUMMY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK2>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI2_MCLK3>;
+                                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                                       dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
+                                       dma-names = "rx", "tx";
+                                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                                       status = "disabled";
+                               };
+
+                               sai3: sai@30c30000 {
+                                       compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
+                                       reg = <0x30c30000 0x10000>;
+                                       #sound-dai-cells = <0>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_IPG>,
+                                                <&clk IMX8MP_CLK_DUMMY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK2>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK3>;
+                                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                                       dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
+                                       dma-names = "rx", "tx";
+                                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                                       status = "disabled";
+                               };
+
+                               sai5: sai@30c50000 {
+                                       compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
+                                       reg = <0x30c50000 0x10000>;
+                                       #sound-dai-cells = <0>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_IPG>,
+                                                <&clk IMX8MP_CLK_DUMMY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK2>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK3>;
+                                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                                       dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
+                                       dma-names = "rx", "tx";
+                                       interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+                                       status = "disabled";
+                               };
+
+                               sai6: sai@30c60000 {
+                                       compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
+                                       reg = <0x30c60000 0x10000>;
+                                       #sound-dai-cells = <0>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_IPG>,
+                                                <&clk IMX8MP_CLK_DUMMY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK1>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK2>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI6_MCLK3>;
+                                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                                       dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
+                                       dma-names = "rx", "tx";
+                                       interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+                                       status = "disabled";
+                               };
+
+                               sai7: sai@30c80000 {
+                                       compatible = "fsl,imx8mp-sai", "fsl,imx8mq-sai";
+                                       reg = <0x30c80000 0x10000>;
+                                       #sound-dai-cells = <0>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_IPG>,
+                                                <&clk IMX8MP_CLK_DUMMY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK2>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI7_MCLK3>;
+                                       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+                                       dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>;
+                                       dma-names = "rx", "tx";
+                                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       sdma3: dma-controller@30e00000 {
+                               compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
+                               reg = <0x30e00000 0x10000>;
+                               #dma-cells = <3>;
+                               clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>,
+                                        <&clk IMX8MP_CLK_AUDIO_ROOT>;
+                               clock-names = "ipg", "ahb";
+                               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                               fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+                       };
+
+                       sdma2: dma-controller@30e10000 {
+                               compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
+                               reg = <0x30e10000 0x10000>;
+                               #dma-cells = <3>;
+                               clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA2_ROOT>,
+                                        <&clk IMX8MP_CLK_AUDIO_ROOT>;
+                               clock-names = "ipg", "ahb";
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+                       };
+
+                       audio_blk_ctrl: clock-controller@30e20000 {
+                               compatible = "fsl,imx8mp-audio-blk-ctrl";
+                               reg = <0x30e20000 0x10000>;
+                               #clock-cells = <1>;
+                               clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
+                                        <&clk IMX8MP_CLK_SAI1>,
+                                        <&clk IMX8MP_CLK_SAI2>,
+                                        <&clk IMX8MP_CLK_SAI3>,
+                                        <&clk IMX8MP_CLK_SAI5>,
+                                        <&clk IMX8MP_CLK_SAI6>,
+                                        <&clk IMX8MP_CLK_SAI7>;
+                               clock-names = "ahb",
+                                             "sai1", "sai2", "sai3",
+                                             "sai5", "sai6", "sai7";
+                               power-domains = <&pgc_audio>;
+                       };
+               };
+
                aips4: bus@32c00000 {
                        compatible = "fsl,aips-bus", "simple-bus";
                        reg = <0x32c00000 0x400000>;