arm64: dts: Add i.MX8QM SOF device tree
authorPaul Olaru <paul.olaru@nxp.com>
Mon, 13 Jan 2020 14:03:37 +0000 (16:03 +0200)
committerDong Aisheng <aisheng.dong@nxp.com>
Mon, 14 Dec 2020 03:21:57 +0000 (11:21 +0800)
Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8qm-mek-sof-cs42888.dts [new file with mode: 0644]

index 584826f..8fff3dc 100644 (file)
@@ -90,3 +90,4 @@ dtb-$(CONFIG_ARCH_MXC) += imx8qxp-mek-dom0.dtb imx8qxp-mek-root.dtb \
                          imx8qxp-mek-inmate.dtb
 
 dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8qm-mek-sof-cs42888.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek-sof-cs42888.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek-sof-cs42888.dts
new file mode 100644 (file)
index 0000000..1ff3d68
--- /dev/null
@@ -0,0 +1,166 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright NXP 2020
+
+#include "imx8qm-mek.dts"
+
+/ {
+       sound-cs42888 {
+               status = "disabled";
+       };
+
+       sound-wm8960 {
+               status = "disabled";
+       };
+
+       esai0_port: esai-port {
+               #sound-dai-cells = <0>;
+               compatible = "fsl,esai-dai";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_esai0>;
+
+               power-domains = <&pd IMX_SC_R_ESAI_0>,
+                       <&pd IMX_SC_R_DMA_2_CH6>,
+                       <&pd IMX_SC_R_DMA_2_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>;
+
+               clocks = <&esai0_lpcg 1>, <&esai0_lpcg 0>,  <&esai0_lpcg 1>,
+                       <&clk_dummy>;
+               clock-names = "core", "extal", "fsys", "spba";
+               assigned-clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>,
+                       <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                       <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MISC0>,
+                       <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MISC1>,
+                       <&esai0_lpcg 0>;
+               assigned-clock-parents = <&aud_pll_div0_lpcg 0>;
+               assigned-clock-rates = <0>, <786432000>, <49152000>, <12288000>, <49152000>;
+               status="okay";
+       };
+
+       sof-audio-cs42888 {
+               compatible = "simple-audio-card";
+               model = "imx-cs42888";
+               simple-audio-card,widgets =
+                       "Line", "Line Out Jack",
+                       "Line", "Line In Jack";
+               simple-audio-card,routing =
+                       "Line Out Jack", "AOUT1L",
+                       "Line Out Jack", "AOUT1R",
+                       "Line Out Jack", "AOUT2L",
+                       "Line Out Jack", "AOUT2R",
+                       "Line Out Jack", "AOUT3L",
+                       "Line Out Jack", "AOUT3R",
+                       "Line Out Jack", "AOUT4L",
+                       "Line Out Jack", "AOUT4R",
+                       "AIN1L", "Line In Jack",
+                       "AIN1R", "Line In Jack",
+                       "AIN2L", "Line In Jack",
+                       "AIN2R", "Line In Jack",
+                       "Playback",  "ESAI0.OUT";
+               status = "okay";
+               simple-audio-card,dai-link {
+                       format = "i2s";
+                       cpu {
+                               sound-dai = <&esai0_port>;
+                       };
+                       plat {
+                               sound-dai = <&dsp>;
+                       };
+                       codec {
+                               sound-dai = <&cs42888>;
+                       };
+               };
+       };
+};
+
+&edma0 {
+       compatible = "fsl,imx8qm-edma";
+       reg = <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 = <8>;
+       interrupts = <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-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 */
+       power-domains = <&pd IMX_SC_R_DMA_0_CH8>,
+                       <&pd IMX_SC_R_DMA_0_CH9>,
+                       <&pd IMX_SC_R_DMA_0_CH12>,
+                       <&pd IMX_SC_R_DMA_0_CH13>,
+                       <&pd IMX_SC_R_DMA_0_CH14>,
+                       <&pd IMX_SC_R_DMA_0_CH15>,
+                       <&pd IMX_SC_R_DMA_0_CH21>,
+                       <&pd IMX_SC_R_DMA_0_CH23>;
+       power-domain-names = "edma0-chan8", "edma0-chan9",
+                       "edma0-chan12", "edma0-chan13",
+                       "edma0-chan14", "edma0-chan15",
+                       "edma0-chan21", "edma0-chan23";
+       status = "okay";
+};
+
+&dsp {
+       compatible = "fsl,imx8qm-dsp";
+       #sound-dai-cells = <0>;
+       tplg-name = "sof-imx8qxp-cs42888.tplg";
+       machine-drv-name = "asoc-simple-card";
+       status = "okay";
+       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>,
+                       <&pd IMX_SC_R_IRQSTR_DSP>;
+       mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1";
+       mboxes = <&lsio_mu13 2 0>,
+               <&lsio_mu13 2 1>,
+               <&lsio_mu13 3 0>,
+               <&lsio_mu13 3 1>;
+};
+
+&amix {
+       status = "disabled";
+};
+
+&esai0 {
+       status = "disabled";
+};
+
+&asrc0 {
+       status = "disabled";
+};
+
+&sai1 {
+       status = "disabled";
+};
+
+&wm8960 {
+       status = "disabled";
+};
+
+&cs42888 {
+       #sound-dai-cells = <0>;
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&mclkout0_lpcg 0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>;
+       status = "okay";
+};