Commit d032d7fc authored by Frank Li's avatar Frank Li Committed by Shawn Guo
Browse files

arm64: dts: imx8qm-mek: add sai and wm8960 support



Add sai[0,1,6,7], wm8960 and asrc0 support.

Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent 5ac99cb9
Loading
Loading
Loading
Loading
+139 −0
Original line number Diff line number Diff line
@@ -46,6 +46,46 @@ reg_vref_1v8: regulator-adc-vref {
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	bt_sco_codec: audio-codec-bt {
		compatible = "linux,bt-sco";
		#sound-dai-cells = <1>;
	};

	sound-bt-sco {
		compatible = "simple-audio-card";
		simple-audio-card,name = "bt-sco-audio";
		simple-audio-card,format = "dsp_a";
		simple-audio-card,bitclock-inversion;
		simple-audio-card,frame-master = <&btcpu>;
		simple-audio-card,bitclock-master = <&btcpu>;

		btcpu: simple-audio-card,cpu {
			sound-dai = <&sai0>;
			dai-tdm-slot-num = <2>;
			dai-tdm-slot-width = <16>;
		};

		simple-audio-card,codec {
			sound-dai = <&bt_sco_codec 1>;
		};
	};

	sound-wm8960 {
		compatible = "fsl,imx-audio-wm8960";
		model = "wm8960-audio";
		audio-cpu = <&sai1>;
		audio-codec = <&wm8960>;
		hp-det-gpio = <&lsio_gpio0 31 GPIO_ACTIVE_HIGH>;
		audio-routing =	"Headphone Jack", "HP_L",
				"Headphone Jack", "HP_R",
				"Ext Spk", "SPK_LP",
				"Ext Spk", "SPK_LN",
				"Ext Spk", "SPK_RP",
				"Ext Spk", "SPK_RN",
				"LINPUT1", "Mic Jack",
				"Mic Jack", "MICB";
	};
};

&adc0 {
@@ -55,6 +95,15 @@ &adc0 {
	status = "okay";
};

&amix {
	status = "okay";
};

&asrc0 {
	fsl,asrc-rate = <48000>;
	status = "okay";
};

&i2c1 {
	#address-cells = <1>;
	#size-cells = <0>;
@@ -65,6 +114,21 @@ &i2c1 {
	scl-gpios = <&lsio_gpio0 14 GPIO_ACTIVE_HIGH>;
	sda-gpios = <&lsio_gpio0 15 GPIO_ACTIVE_HIGH>;
	status = "okay";

	wm8960: audio-codec@1a {
		compatible = "wlf,wm8960";
		reg = <0x1a>;
		clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
		clock-names = "mclk";
		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 IMX_LPCG_CLK_0>;
		assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>;
		wlf,shared-lrclk;
		wlf,hp-cfg = <2 2 3>;
		wlf,gpio-cfg = <1 3>;
	};
};

&lpuart0 {
@@ -160,7 +224,64 @@ &usdhc2 {
	status = "okay";
};

&sai0 {
	#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>,
			  <&sai0_lpcg IMX_LPCG_CLK_4>;
	assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai0>;
	status = "okay";
};

&sai1 {
	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>,
			  <&sai1_lpcg IMX_LPCG_CLK_4>;
	assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai1>;
	status = "okay";
};

&sai6 {
	assigned-clocks = <&acm IMX_ADMA_ACM_SAI6_MCLK_SEL>,
			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
			  <&sai6_lpcg IMX_LPCG_CLK_4>;
	assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
	assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
	fsl,sai-asynchronous;
	status = "okay";
};

&sai7 {
	assigned-clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>,
			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
			  <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
			  <&sai7_lpcg IMX_LPCG_CLK_4>;
	assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
	assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
	fsl,sai-asynchronous;
	status = "okay";
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	pinctrl_hog: hoggrp {
		fsl,pins = <
			IMX8QM_MCLK_OUT0_AUD_ACM_MCLK_OUT0			0x0600004c
			IMX8QM_SCU_GPIO0_03_LSIO_GPIO0_IO31			0x0600004c
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			IMX8QM_GPT0_CLK_DMA_I2C1_SCL 0x0600004c
@@ -256,6 +377,24 @@ IMX8QM_M41_GPIO0_01_DMA_UART3_TX 0x06000020
		>;
	};

	pinctrl_sai0: sai0grp {
		fsl,pins = <
			IMX8QM_SPI0_CS1_AUD_SAI0_TXC				0x0600004c
			IMX8QM_SPI2_CS1_AUD_SAI0_TXFS				0x0600004c
			IMX8QM_SAI1_RXFS_AUD_SAI0_RXD				0x0600004c
			IMX8QM_SAI1_RXC_AUD_SAI0_TXD				0x0600006c
		>;
	};

	pinctrl_sai1: sai1grp {
		fsl,pins = <
			IMX8QM_SAI1_RXD_AUD_SAI1_RXD				0x06000040
			IMX8QM_SAI1_TXFS_AUD_SAI1_TXFS				0x06000040
			IMX8QM_SAI1_TXD_AUD_SAI1_TXD				0x06000060
			IMX8QM_SAI1_TXC_AUD_SAI1_TXC				0x06000040
		>;
	};

	pinctrl_usdhc1: usdhc1grp {
		fsl,pins = <
			IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK				0x06000041