VIM3 调试I2SB接口导致hdmi输出没有声音

设备环境:
VIM3 android最新固件

问题描述:
A311D hdmi audio默认是绑定到tdmb 然后通过spdifout同步输出到HDMI audio。原配置如下:

aml_tdmb: tdmb {
	compatible = "amlogic, g12a-snd-tdmb";
	#sound-dai-cells = <0>;
	dai-tdm-lane-slot-mask-in = <0 1 0 0>;
	dai-tdm-lane-slot-mask-out = <1 0 0 0>;
	dai-tdm-clk-sel = <1>;
	clocks = <&clkaudio CLKID_AUDIO_MCLK_B
			&clkc CLKID_MPLL1
			&clkc CLKID_MPLL0
			&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
	clock-names = "mclk", "clk_srcpll",
		"samesource_srcpll", "samesource_clk";
	pinctrl-names = "tdm_pins";
	pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
	mclk_pad = <0>;  /* 0: mclk_0; 1: mclk_1 */
	/*
	 * 0: tdmout_a;
	 * 1: tdmout_b;
	 * 2: tdmout_c;
	 * 3: spdifout;
	 * 4: spdifout_b;
	 */
	samesource_sel = <3>;
};

现在开发板tdmb I2S接口用于其他音频接口。通过音频改由aml_tdmc I2S方式输出到hdmi 但是没有声音?流程来看没有问题 配置以及log如下 EE_AUDIO_TOHDMITX_CTRL0寄存器来看是对应的 请问是否还有其他问题 谢谢:

aml_tdmc: tdmc {
	compatible = "amlogic, g12a-snd-tdmc";
	#sound-dai-cells = <0>;
	dai-tdm-lane-slot-mask-in = <1 0 0 0>;
	dai-tdm-lane-slot-mask-out = <0 1 1 0>;
	#dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
	#dai-tdm-lane-oe-slot-mask-out = <1 0 0 0>;
	dai-tdm-clk-sel = <2>;
	clocks = <&clkaudio CLKID_AUDIO_MCLK_C
			&clkc CLKID_MPLL2>;
	clock-names = "mclk", "clk_srcpll";
	pinctrl-names = "tdm_pins";
	pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
	mclk_pad = <1>;  /* 0: mclk_0; 1: mclk_1 */
	i2s2hdmi = <1>;
};

tinyplay播放log
[ 102.002303@0] aml_tdm_open
[ 102.002340@0] Not init audio effects
[ 102.003773@0] aml_tdm_open
[ 102.005628@0] Not init audio effects
[ 102.009596@0] vhd aml_T9015_hw_params
Playin[ 102.013536@0] vhd aml_dai_tdm_prepare,i2s2hdmitx:1 p_tdm->id:2
[ 102.019301@0] vhd i2s_to_hdmitx_ctrl,index:2
[ 102.023459@0] vhd i2s_to_hdmitx_ctrl,EE_AUDIO_TOACODEC_CTRL:0x800022a0
[ 102.030256@0] hdmitx: vhd hdmitx_notify_callback_a,tx_aud_cfg:1
[ 102.035861@0] hdmitx: vhd hdmitx_notify_callback_a,hdmi_audio_off_flag:0 audio_param_update_flag:0

如果aml_tdmc 配置成spdif输出到hdmi是可以的 难道必须通过SPDIF?

aml_tdmc: tdmc {
	compatible = "amlogic, g12a-snd-tdmc";
	#sound-dai-cells = <0>;
	dai-tdm-lane-slot-mask-in = <1 0 0 0>;
	dai-tdm-lane-slot-mask-out = <0 1 1 0>;
	#dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
	#dai-tdm-lane-oe-slot-mask-out = <1 0 0 0>;
	dai-tdm-clk-sel = <2>;
	clocks = <&clkaudio CLKID_AUDIO_MCLK_C
			&clkc CLKID_MPLL2
			&clkc CLKID_MPLL0
			&clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
	clock-names = "mclk", "clk_srcpll",
	"samesource_srcpll", "samesource_clk";
	pinctrl-names = "tdm_pins";
	pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
	mclk_pad = <1>;  /* 0: mclk_0; 1: mclk_1 */
	//i2s2hdmi = <1>;
	samesource_sel = <3>;
};

@seekdream1990 @jasonl @Terry 安卓的问题麻烦帮忙看下

期待你的回复 谢谢 :smiley: :grinning: :grinning: :grinning: :grinning:

目前不清楚你具体要如何应用,要最终实现什么效果? tdmb I2S外接Codec? HDMI默认不出声?或者HDMI 输出的音源要和tdmb I2S输出的不一样?

就是HDMI的音源由原来的SPDIF_A 改为I2SC

为什么要这样修改?修改这个的目的是什么?

单纯想从I2S出 看datasheet是可以的 实际来看不行