qcom SM6125平台 dmic调试

本文详细介绍了SM6125平台的Dmic配置,包括声卡DTS配置、pinctrl配置、路由设置以及Codec Bolero的注册过程。此外,还涉及了widget和snd_kcontrol注册,以及Dmic调试中的关键步骤和Tinymix测试案例。

1:硬件信息

平台gpio 列表:

对应 SEC_MI2S gpio group

  • gpio125
  • gpio126
  • gpio127
  • gpio128

image-20210924151553616

2:Dmic配置点

2.1:声卡dts配置

&sm6150_snd {
   
   
	status = "ok";
	qcom,model = "trinket-idp-snd-card";
    //......
	qcom,audio-routing =
		"AMIC2", "MIC BIAS2",
		"MIC BIAS2", "Analog Mic2",
		"TX DMIC0", "MIC BIAS1",
		"MIC BIAS1", "Digital Mic0",
		"TX DMIC0", "Digital Mic0",
		"TX DMIC1", "MIC BIAS1",
		"MIC BIAS1", "Digital Mic1",
		"TX DMIC1", "Digital Mic1",
		"TX DMIC2", "MIC BIAS3",
		"MIC BIAS3", "Digital Mic2",
		"TX DMIC3", "MIC BIAS3",
		"MIC BIAS3", "Digital Mic3",
    //......
	qcom,cdc-dmic01-gpios = <&cdc_dmic01_gpios>;
	qcom,cdc-dmic23-gpios = <&cdc_dmic23_gpios>;
    //qcom,sec-mi2s-gpios = <&cdc_sec_mi2s_gpios>; //与dmic 同gpio 无法同时使用
	qcom,pri-mi2s-gpios = <&cdc_pri_mi2s_gpios>;
	qcom,tert-mi2s-gpios = <&cdc_tert_mi2s_gpios>;
	asoc-codec  = <&stub_codec>, <&bolero>, <&ext_disp_audio_codec>;
	asoc-codec-names = "msm-stub-codec.1", "bolero_codec",   //codec bolero 需要配置,后面做解析
				"msm-ext-disp-audio-codec-rx";
	qcom,wsa-max-devs = <0>;
	qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
			<&wsa881x_0213>, <&wsa881x_0214>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
				  "SpkrLeft", "SpkrRight";
	qcom,codec-max-aux-devs = <1>;
	qcom,codec-aux-devs = <&wcd937x_codec>;
	qcom,msm_audio_ssr_devs = <&audio_apr>, <&q6core>,
				<&bolero>;
};

2.2:pinctrl DTS配置

soc中配置	
cdc_dmic01_gpios: cdc_dmic01_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic01_clk_active &cdc_dmic01_data_active>;
		pinctrl-1 = <&cdc_dmic01_clk_sleep &cdc_dmic01_data_sleep>;
	};
	cdc_dmic23_gpios: cdc_dmic23_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic23_clk_active &cdc_dmic23_data_active>;
		pinctrl-1 = <&cdc_dmic23_clk_sleep &cdc_dmic23_data_sleep>;
	};


tlmm中配置:
		cdc_dmic01_clk_active: dmic01_clk_active {
			mux {
				pins = "gpio125";
				function = "DMIC0_CLK";
			};

			config {
				pins = "gpio125";
				drive-strength = <8>;
				output-high;
			};
		};

		cdc_dmic01_clk_sleep: dmic01_clk_sleep {
			mux {
				pins = "gpio125";
				function = "DMIC0_CLK";
			};

			config {
				pins = "gpio125";
				drive-strength = <2>;
				bias-disable;
				output-low;
			};
		};

		cdc_dmic01_data_active: dmic01_data_active {
			mux {
				pins = "gpio126";
				function = "DMIC0_DATA";
			};

			config {
				pins = "gpio126";
				drive-strength = <8>;
				input-enable;
			};
		};

		cdc_dmic01_data_sleep: dmic01_data_sleep {
			mux {
				pins = "gpio126";
				function = "DMIC0_DATA";
			};

			config {
				pins = "gpio126";
				drive-strength = <2>;
				pull-down;
				input-enable;
			};
		};

		cdc_dmic23_clk_active: dmic23_clk_active {
			mux {
				pins = "gpio127";
				function = "DMIC1_CLK";
			};

			config {
				pins = "gpio127";
				drive-strength = <8>;
				output-high;
			};
		};

		cdc_dmic23_clk_sleep: dmic23_clk_sleep {
			mux {
				pins = "gpio127";
				function = "DMIC1_CLK";
			};

			config {
				pins = "gpio127";
				drive-strength = <2>;
				bias-disable;
				output-low;
			};
		};

		cdc_dmic23_data_active: dmic23_data_active {
			mux {
				pins = "gpio128";
				function = "DMIC1_DATA";
			};

			config {
				pins = "gpio128";
				drive-strength = <8>;
				input-enable;
			};
		};

		cdc_dmic23_data_sleep: dmic23_data_sleep {
			mux {
				pins = "gpio128";
				function = "DMIC1_DATA";
			};

			config {
				pins = "gpio128";
				drive-strength = <2>;
				pull-down;
				input-enable;
			};
		};

2.3:路由配置

<path name="audio-record">
        <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="1" />
     </path>
<path name="handset-mic">
    <path name="dmic1" />
</path>    
<path name="dmic1">
        <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
        <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
        <ctl name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值