IMX93 I2S Audio Issue

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IMX93 I2S Audio Issue

318 次查看
AlanWen
Contributor III

I'm using the default kernel code for sai definition as below:

 

 

pinctrl_sai3: sai3grp {
		fsl,pins = <
			MX93_PAD_GPIO_IO26__SAI3_TX_SYNC		0x31e
			MX93_PAD_GPIO_IO16__SAI3_TX_BCLK		0x31e
			MX93_PAD_GPIO_IO17__SAI3_MCLK			0x31e
			MX93_PAD_GPIO_IO19__SAI3_TX_DATA00		0x31e
			MX93_PAD_GPIO_IO20__SAI3_RX_DATA00		0x31e
		>;
	};

	pinctrl_sai3_sleep: sai3grpsleep {
		fsl,pins = <
			MX93_PAD_GPIO_IO26__GPIO2_IO26			0x51e
			MX93_PAD_GPIO_IO16__GPIO2_IO16			0x51e
			MX93_PAD_GPIO_IO17__GPIO2_IO17			0x51e
			MX93_PAD_GPIO_IO19__GPIO2_IO19			0x51e
			MX93_PAD_GPIO_IO20__GPIO2_IO20			0x51e
		>;
	};
&sai3 {
	#sound-dai-cells = <0>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_sai3>;
	pinctrl-1 = <&pinctrl_sai3_sleep>;
	assigned-clocks = <&clk IMX93_CLK_SAI3>;
	assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
	assigned-clock-rates = <12288000>;
	fsl,sai-mclk-direction-output;
	status = "okay";
};

 

 

 

And I'm using the TLV320AIC3106 as my Sound-Card, the device tree shown below:

&lpi2c2 {
	#address-cells = <1>;
	#size-cells = <0>;
	clock-frequency = <400000>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_lpi2c2>;
	pinctrl-1 = <&pinctrl_lpi2c2>;
	status = "okay";
    tlv320aic3106: audio-codec@1b {
		compatible = "ti,tlv320aic3106";
		reg = <0x1b>;

		reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
		status = "okay";
	};
};
/ {
    sound-tlv320 {
		compatible = "simple-audio-card";
		simple-audio-card,name = "tlv320-audio";
		simple-audio-card,widgets =
			"Line",    "Line Out",
			"Line",    "Line In",
			"Microphone",    "Microphone Jack";
		simple-audio-card,routing =
			"Line Out",	"LLOUT",
			"Line Out",	"RLOUT",
			"LINE1L",	"Line In",
			"LINE1R",	"Line In",
                        "MIC3L",	"Microphone Jack",
			"MIC3R",	"Microphone Jack",
                        "Microphone Jack",	"Mic Bias";
        
		simple-audio-card,format = "i2s";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;
		simple-audio-card,bitclock-inversion;

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

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

After compiling the kernel code, I can find the i2c device registered, but it's not 'UU'.

Can anyone help me solve this probelm ?

 

Thanks in advance.

标记 (5)
0 项奖励
回复
1 回复

284 次查看
jimmychan
NXP TechSupport
NXP TechSupport

You could check the TLV320AIC3106 is at operation mode. Check the reset signal is proper or not. Is the I2C communication work? You could check it in the TLV320AIC3106 driver.

0 项奖励
回复