summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale/imx8mp.dtsi
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2020-01-16 15:34:50 +0800
committerShengjiu Wang <shengjiu.wang@nxp.com>2020-01-20 17:08:29 +0800
commita7d97d8f8e5237dba53a2fe5978cbf77a7fe8124 (patch)
treec75c42ee9aaf2e7e31a9c85cc69f8bf44d9b8b48 /arch/arm64/boot/dts/freescale/imx8mp.dtsi
parentc45fbeeb2d760ce3eb49bf81e2a0496686c11d85 (diff)
MLK-23242-6: arm64: dts: imx8mp: Add support for audio sound card
Enable the sound-wm8960 and sound-micfil 1. Add audio device node for each IP in imx8mp 2. Add clocks for audiomix power domains 3. Enable the ASRC. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Diffstat (limited to 'arch/arm64/boot/dts/freescale/imx8mp.dtsi')
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp.dtsi139
1 files changed, 131 insertions, 8 deletions
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 2d2821fd8866..3c0518e069b4 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -278,8 +278,7 @@
domain-index = <5>;
domain-name = "audiomix";
clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
- <&clk IMX8MP_CLK_AUDIO_AXI_DIV>,
- <&clk IMX8MP_CLK_IPG_AUDIO_ROOT>;
+ <&clk IMX8MP_CLK_AUDIO_AXI_DIV>;
};
gpumix_pd: gpumix-pd {
@@ -563,20 +562,23 @@
<&clk IMX8MP_CLK_NOC_IO>,
<&clk IMX8MP_CLK_GIC>,
<&clk IMX8MP_CLK_AUDIO_AHB>,
+ <&clk IMX8MP_CLK_AUDIO_AXI_SRC>,
<&clk IMX8MP_CLK_IPG_AUDIO_ROOT>,
<&clk IMX8MP_AUDIO_PLL1>,
<&clk IMX8MP_AUDIO_PLL2>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
<&clk IMX8MP_SYS_PLL1_800M>,
<&clk IMX8MP_SYS_PLL2_500M>,
+ <&clk IMX8MP_SYS_PLL1_800M>,
<&clk IMX8MP_SYS_PLL1_800M>;
assigned-clock-rates = <1000000000>,
<800000000>,
<500000000>,
<400000000>,
+ <800000000>,
<400000000>,
- <786432000>,
- <722534400>;
+ <393216000>,
+ <361267200>;
};
src: src@30390000 {
@@ -995,6 +997,70 @@
#size-cells = <1>;
ranges;
+ sai1: sai@30c10000 {
+ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai";
+ reg = <0x30c10000 0x10000>;
+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_IPG>, <&clk IMX8MP_CLK_DUMMY>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
+ <&clk IMX8MP_CLK_DUMMY>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
+ dma-names = "rx", "tx";
+ fsl,shared-interrupt;
+ fsl,dataline = <0 0xff 0xff>;
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
+ sai2: sai@30c20000 {
+ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai";
+ reg = <0x30c20000 0x10000>;
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI2_IPG>, <&clk IMX8MP_CLK_DUMMY>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI2_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
+ <&clk IMX8MP_CLK_DUMMY>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma2 2 2 0>, <&sdma2 3 2 0>;
+ dma-names = "rx", "tx";
+ fsl,shared-interrupt;
+ fsl,dataline = <0 0xf 0xf>;
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
+ sai3: sai@30c30000 {
+ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai";
+ reg = <0x30c30000 0x10000>;
+ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
+ <&clk IMX8MP_CLK_DUMMY>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma2 4 2 0>, <&sdma2 5 2 0>;
+ dma-names = "rx", "tx";
+ fsl,shared-interrupt;
+ fsl,dataline = <0 0x3 0x3>;
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
+ sai5: sai@30c50000 {
+ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai";
+ reg = <0x30c50000 0x10000>;
+ interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI5_IPG>, <&clk IMX8MP_CLK_DUMMY>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
+ <&clk IMX8MP_CLK_DUMMY>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma2 8 2 0>, <&sdma2 9 2 0>;
+ dma-names = "rx", "tx";
+ fsl,shared-interrupt;
+ fsl,dataline = <0 0xf 0xf>;
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
sai6: sai@30c60000 {
compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai";
reg = <0x30c60000 0x10000>;
@@ -1008,6 +1074,22 @@
dmas = <&sdma2 10 2 0>, <&sdma2 11 2 0>;
dma-names = "rx", "tx";
fsl,shared-interrupt;
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
+ sai7: sai@30c80000 {
+ compatible = "fsl,imx8mq-sai", "fsl,imx6sx-sai";
+ reg = <0x30c80000 0x10000>;
+ interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI7_IPG>, <&clk IMX8MP_CLK_DUMMY>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI7_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
+ <&clk IMX8MP_CLK_DUMMY>;
+ clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma2 12 2 0>, <&sdma2 13 2 0>;
+ dma-names = "rx", "tx";
+ fsl,shared-interrupt;
+ power-domains = <&audiomix_pd>;
status = "disabled";
};
@@ -1028,11 +1110,12 @@
fsl,easrc-ram-script-name = "imx/easrc/easrc-imx8mn.bin";
fsl,asrc-rate = <8000>;
fsl,asrc-width = <16>;
+ power-domains = <&audiomix_pd>;
status = "disabled";
};
micfil: micfil@30ca0000 {
- compatible = "fsl,imx8mm-micfil";
+ compatible = "fsl,imx8mp-micfil";
reg = <0x30ca0000 0x10000>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
@@ -1047,6 +1130,19 @@
"pll8k", "pll11k", "clkext3";
dmas = <&sdma2 24 25 0x80000000>;
dma-names = "rx";
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
+ aud2htx: aud2htx@30cb0000 {
+ compatible = "fsl,imx8mp-aud2htx";
+ reg = <0x30cb0000 0x10000>;
+ interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG>;
+ clock-names = "bus";
+ dmas = <&sdma2 26 2 0>;
+ dma-names = "tx";
+ power-domains = <&audiomix_pd>;
status = "disabled";
};
@@ -1059,11 +1155,15 @@
<GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
/* eARC PHY - SPDIF wakeup IRQ */
<GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_IPG>;
- clock-names = "ipg";
- dmas = <&sdma2 30 18 0>, <&sdma2 31 18 0>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_IPG>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_PHY>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT>;
+ clock-names = "ipg", "phy", "spba";
+ dmas = <&sdma2 30 2 0>, <&sdma2 31 2 0>;
dma-names = "rx", "tx";
fsl,xcvr-fw = "imx/xcvr/xcvr-imx8mp.bin";
+ resets = <&audiomix_reset 0>;
+ power-domains = <&audiomix_pd>;
status = "disabled";
};
};
@@ -1078,6 +1178,7 @@
#dma-cells = <3>;
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
fsl,ratio-1-1;
+ power-domains = <&audiomix_pd>;
status = "disabled";
};
@@ -1091,6 +1192,7 @@
#dma-cells = <3>;
fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
fsl,ratio-1-1;
+ power-domains = <&audiomix_pd>;
status = "disabled";
};
@@ -1112,6 +1214,14 @@
#reset-cells = <1>;
};
};
+
+ mu2: mu2@30e60000 {
+ compatible = "fsl,imx8-mu-dsp";
+ reg = <0x30E60000 0x10000>;
+ interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+ fsl,dsp_ap_mu_id = <2>;
+ status = "okay";
+ };
};
aips4: bus@32c00000 {
@@ -1638,6 +1748,19 @@
status = "disabled";
};
+ dsp: dsp@3b6e8000 {
+ compatible = "fsl,imx8mp-dsp-v1";
+ reg = <0x0 0x3B6E8000 0x0 0x88000>;
+ clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_OCRAMA_IPG>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_DSP_ROOT>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_DSPDBG_ROOT>,
+ <&audiomix_clk IMX8MP_CLK_AUDIOMIX_MU2_ROOT>;
+ clock-names = "ocram", "core", "debug", "mu2";
+ fsl,dsp-firmware = "imx/dsp/hifi4.bin";
+ power-domains = <&audiomix_pd>;
+ status = "disabled";
+ };
+
display-subsystem {
compatible = "fsl,imx-display-subsystem";
ports = <&lcdif_disp0>;