ARM: dts: msm: Add audio support for SA515M CCARD boards

Add new ASoC device node for SA515M CCARD boards
using the TI TLV302AIC3x codec.

Change-Id: I048889fbf122283309181f5c2df9bf8daf9d0262
Signed-off-by: Gustavo Solaira <gustavos@codeaurora.org>
tirimbino
Gustavo Solaira 6 years ago
parent e72948be4c
commit 8a5fdbc5d7
  1. 71
      Documentation/devicetree/bindings/sound/qcom-audio-dev.txt
  2. 46
      arch/arm64/boot/dts/qcom/sa515m-ccard.dtsi
  3. 15
      arch/arm64/boot/dts/qcom/sdxprairie-pinctrl.dtsi

@ -1859,6 +1859,77 @@ Example:
"msm-dai-q6-auxpcm.2";
};
* SDX ASoC Auto Machine driver
Required properties:
- compatible : "qcom,sdx-asoc-snd-auto"
- qcom,model : The user-visible name of this sound card.
- qcom,prim_mi2s_aux_master : Handle to prim_master pinctrl configurations
- qcom,prim_mi2s_aux_slave : Handle to prim_slave pinctrl configurations
- qcom,sec_mi2s_aux_master : Handle to sec_master pinctrl configurations
- qcom,sec_mi2s_aux_slave : Handle to sec_slave pinctrl configurations
- asoc-platform: This is phandle list containing the references to platform device
nodes that are used as part of the sound card dai-links.
- asoc-platform-names: This property contains list of platform names. The order of
the platform names should match to that of the phandle order
given in "asoc-platform".
- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
that are used as part of the sound card dai-links.
- asoc-cpu-names: This property contains list of cpu dai names. The order of the
cpu dai names should match to that of the phandle order give
in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
where the id (%d) field represents the back-end AFE port id that
this CPU dai is associated with.
- asoc-codec: This is phandle list containing the references to codec dai device
nodes that are used as part of the sound card dai-links.
- asoc-codec-names: This property contains list of codec dai names. The order of the
codec dai names should match to that of the phandle order given
in "asoc-codec".
Example:
sound-auto {
compatible = "qcom,sdx-asoc-snd-auto";
qcom,model = "sdx-auto-i2s-snd-card";
qcom,prim_mi2s_aux_master = <&prim_master>;
qcom,prim_mi2s_aux_slave = <&prim_slave>;
qcom,sec_mi2s_aux_master = <&sec_master>;
qcom,sec_mi2s_aux_slave = <&sec_slave>;
asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
<&loopback>, <&hostless>, <&afe>, <&routing>,
<&pcm_dtmf>, <&host_pcm>, <&compress>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-voip-dsp", "msm-pcm-voice",
"msm-pcm-loopback", "msm-pcm-hostless",
"msm-pcm-afe", "msm-pcm-routing",
"msm-pcm-dtmf", "msm-voice-host-pcm",
"msm-compress-dsp";
asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>,
<&dtmf_tx>,
<&rx_capture_tx>, <&rx_playback_rx>,
<&tx_capture_tx>, <&tx_playback_rx>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
<&afe_proxy_tx>, <&incall_record_rx>,
<&incall_record_tx>, <&incall_music_rx>,
<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
<&dai_sec_auxpcm>;
asoc-cpu-names = "msm-dai-q6-auxpcm.1",
"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
"msm-dai-q6-auxpcm.2";
asoc-codec = <&tlv320aic3x_codec>, <&stub_codec>;
asoc-codec-names = "tlv320aic3x-codec", "msm-stub-codec.1";
};
* voice-mhi-audio
Required properties:

@ -23,6 +23,51 @@
gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
snd_tlv3x: sound-auto {
compatible = "qcom,sdx-asoc-snd-auto";
qcom,model = "sdx-auto-i2s-snd-card";
qcom,prim_mi2s_aux_master = <&prim_master>;
qcom,prim_mi2s_aux_slave = <&prim_slave>;
qcom,sec_mi2s_aux_master = <&sec_master>;
qcom,sec_mi2s_aux_slave = <&sec_slave>;
pinctrl-names = "default";
pinctrl-0 = <&a2b_cdc_sel_default>, <&i2s_mclk_active>;
asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
<&loopback>, <&hostless>, <&afe>, <&routing>,
<&pcm_dtmf>, <&host_pcm>, <&compress>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-voip-dsp", "msm-pcm-voice",
"msm-pcm-loopback", "msm-pcm-hostless",
"msm-pcm-afe", "msm-pcm-routing",
"msm-pcm-dtmf", "msm-voice-host-pcm",
"msm-compress-dsp";
asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>,
<&dtmf_tx>,
<&rx_capture_tx>, <&rx_playback_rx>,
<&tx_capture_tx>, <&tx_playback_rx>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
<&afe_proxy_tx>, <&incall_record_rx>,
<&incall_record_tx>, <&incall_music_rx>,
<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
<&dai_sec_auxpcm>;
asoc-cpu-names = "msm-dai-q6-auxpcm.1",
"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
"msm-dai-q6-auxpcm.2";
asoc-codec = <&tlv320aic3x_codec>, <&stub_codec>;
asoc-codec-names = "tlv320aic3x-codec", "msm-stub-codec.1";
};
};
/* delete pm8150b nodes */
@ -113,6 +158,7 @@
reset-inverted;
AVDD-supply = <&codec_vreg>;
IOVDD-supply = <&codec_vreg>;
ai3x-ocmv = <1>;
};
eeprom@52 {

@ -1473,5 +1473,20 @@
};
};
a2b_cdc_sel {
a2b_cdc_sel_default: a2b_cdc_sel_default {
mux {
pins = "gpio97";
function = "gpio";
};
config {
pins = "gpio97";
drive-strength = <8>;
bias-disable;
output-high;
};
};
};
};
};

Loading…
Cancel
Save