Loading Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +83 −8 Original line number Diff line number Diff line Loading @@ -2135,10 +2135,14 @@ sound-9330 { - qcom,model : The user-visible name of this sound card. - qcom,tasha-mclk-clk-freq : MCLK frequency value for tasha codec and node is "sound-9335" - 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 - qcom,pinctrl-names : Lists all the possible combinations of the gpio sets mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs, this would list all the 2^N combinations. - pinctrl-names : The combinations of gpio sets from above that are supported in the flavor. This can be sometimes same as qcom,pinctrl-names i.e with 2^N combinations or will have less incase if some combination is not supported or invalid. - pinctrl-# : Pinctrl states as mentioned in pinctrl-names. - qcom,audio-routing : A list of the connections between audio components. - asoc-platform: This is phandle list containing the references to platform device nodes that are used as part of the sound card dai-links. Loading Loading @@ -2197,10 +2201,81 @@ Example: "MIC BIAS4 External", "Digital Mic6"; qcom,tasha-mclk-clk-freq = <12288000>; 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>; qcom,msm-gpios = "pri_mi2s_aux_master", "pri_mi2s_aux_slave", "sec_mi2s_aux_master", "sec_mi2s_aux_slave"; qcom,pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>; Loading arch/arm/boot/dts/qcom/mdm9650-ccard.dtsi +74 −4 Original line number Diff line number Diff line Loading @@ -30,10 +30,80 @@ compatible = "qcom,mdm-audio-auto"; qcom,model = "mdm-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>; qcom,msm-gpios = "pri_mi2s_aux_master", "pri_mi2s_aux_slave", "sec_mi2s_aux_master", "sec_mi2s_aux_slave"; qcom,pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>, <&compress>; Loading arch/arm/boot/dts/qcom/mdm9650-ttp.dts +57 −25 Original line number Diff line number Diff line Loading @@ -82,30 +82,62 @@ &blsp1_uart2_hs { status = "disabled"; }; &sec_master { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-1 = <&sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; &sec_slave { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; pinctrl-1 = <&sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; qcom,mi2s-auxpcm-cdc-gpios; &snd_tasha { pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; }; arch/arm/boot/dts/qcom/mdm9650.dtsi +76 −61 Original line number Diff line number Diff line Loading @@ -1145,7 +1145,7 @@ #clock-cells = <1>; }; sound { snd_tasha: sound { compatible = "qcom,mdm-audio-tasha"; qcom,model = "mdm-tasha-i2s-snd-card"; Loading Loading @@ -1179,10 +1179,81 @@ "SpkrRight IN", "SPK2 OUT"; qcom,tasha-mclk-clk-freq = <12288000>; 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>; qcom,msm-gpios = "pri_mi2s_aux_master", "pri_mi2s_aux_slave", "sec_mi2s_aux_master", "sec_mi2s_aux_slave"; qcom,pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>, <&compress>; Loading Loading @@ -1409,62 +1480,6 @@ }; prim_master: prim_master_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active>; pinctrl-1 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; prim_slave: prim_slave_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active>; pinctrl-1 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; sec_master: sec_master_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-1 = <&sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; sec_slave: sec_slave_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-1 = <&sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; sdhc_1: sdhci@7824000 { compatible = "qcom,sdhci-msm"; reg = <0x07824900 0x500>, <0x07824000 0x800>; Loading sound/soc/msm/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ snd-soc-msm8x16-objs += msm8952-slimbus.o msm8952-dai-links.o obj-$(CONFIG_SND_SOC_MSM8X16) += snd-soc-msm8x16.o # for MDM 9650 sound card driver snd-soc-mdm9650-objs := mdm9650.o snd-soc-mdm9650-objs := mdm9650.o msm-audio-pinctrl.o obj-$(CONFIG_SND_SOC_MDM9650) += snd-soc-mdm9650.o # for MDM 9607 sound card driver Loading Loading
Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +83 −8 Original line number Diff line number Diff line Loading @@ -2135,10 +2135,14 @@ sound-9330 { - qcom,model : The user-visible name of this sound card. - qcom,tasha-mclk-clk-freq : MCLK frequency value for tasha codec and node is "sound-9335" - 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 - qcom,pinctrl-names : Lists all the possible combinations of the gpio sets mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs, this would list all the 2^N combinations. - pinctrl-names : The combinations of gpio sets from above that are supported in the flavor. This can be sometimes same as qcom,pinctrl-names i.e with 2^N combinations or will have less incase if some combination is not supported or invalid. - pinctrl-# : Pinctrl states as mentioned in pinctrl-names. - qcom,audio-routing : A list of the connections between audio components. - asoc-platform: This is phandle list containing the references to platform device nodes that are used as part of the sound card dai-links. Loading Loading @@ -2197,10 +2201,81 @@ Example: "MIC BIAS4 External", "Digital Mic6"; qcom,tasha-mclk-clk-freq = <12288000>; 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>; qcom,msm-gpios = "pri_mi2s_aux_master", "pri_mi2s_aux_slave", "sec_mi2s_aux_master", "sec_mi2s_aux_slave"; qcom,pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>; Loading
arch/arm/boot/dts/qcom/mdm9650-ccard.dtsi +74 −4 Original line number Diff line number Diff line Loading @@ -30,10 +30,80 @@ compatible = "qcom,mdm-audio-auto"; qcom,model = "mdm-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>; qcom,msm-gpios = "pri_mi2s_aux_master", "pri_mi2s_aux_slave", "sec_mi2s_aux_master", "sec_mi2s_aux_slave"; qcom,pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>, <&compress>; Loading
arch/arm/boot/dts/qcom/mdm9650-ttp.dts +57 −25 Original line number Diff line number Diff line Loading @@ -82,30 +82,62 @@ &blsp1_uart2_hs { status = "disabled"; }; &sec_master { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-1 = <&sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; &sec_slave { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; pinctrl-1 = <&sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; qcom,mi2s-auxpcm-cdc-gpios; &snd_tasha { pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_b_active_master &sec_sck_b_active_master &sec_dout_b_active &sec_din_b_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_sleep &sec_sck_b_sleep &sec_dout_b_sleep &sec_din_b_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_b_active_slave &sec_sck_b_active_slave &sec_dout_b_active &sec_din_b_active>; };
arch/arm/boot/dts/qcom/mdm9650.dtsi +76 −61 Original line number Diff line number Diff line Loading @@ -1145,7 +1145,7 @@ #clock-cells = <1>; }; sound { snd_tasha: sound { compatible = "qcom,mdm-audio-tasha"; qcom,model = "mdm-tasha-i2s-snd-card"; Loading Loading @@ -1179,10 +1179,81 @@ "SpkrRight IN", "SPK2 OUT"; qcom,tasha-mclk-clk-freq = <12288000>; 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>; qcom,msm-gpios = "pri_mi2s_aux_master", "pri_mi2s_aux_slave", "sec_mi2s_aux_master", "sec_mi2s_aux_slave"; qcom,pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-names = "all_off", "pri_mi2s_aux_master_active", "pri_mi2s_aux_slave_active", "invalid_state_1", "sec_mi2s_aux_master_active", "pri_master_active_sec_master_active", "pri_slave_active_sec_master_active", "invalid_state_2", "sec_mi2s_aux_slave_active", "pri_master_active_sec_slave_active", "pri_slave_active_sec_slave_active"; pinctrl-0 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-1 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-2 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-3 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-4 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-5 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-6 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-7 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; pinctrl-8 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-9 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-10 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active &sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>, <&loopback>, <&hostless>, <&afe>, <&routing>, <&pcm_dtmf>, <&host_pcm>, <&compress>; Loading Loading @@ -1409,62 +1480,6 @@ }; prim_master: prim_master_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&pri_ws_active_master &pri_sck_active_master &pri_dout_active &pri_din_active>; pinctrl-1 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; prim_slave: prim_slave_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&pri_ws_active_slave &pri_sck_active_slave &pri_dout_active &pri_din_active>; pinctrl-1 = <&pri_ws_sleep &pri_sck_sleep &pri_dout_sleep &pri_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; sec_master: sec_master_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_active_master &sec_sck_active_master &sec_dout_active &sec_din_active>; pinctrl-1 = <&sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; sec_slave: sec_slave_pinctrl { compatible = "qcom,wcd-gpio-ctrl"; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&sec_ws_active_slave &sec_sck_active_slave &sec_dout_active &sec_din_active>; pinctrl-1 = <&sec_ws_sleep &sec_sck_sleep &sec_dout_sleep &sec_din_sleep>; qcom,mi2s-auxpcm-cdc-gpios; }; sdhc_1: sdhci@7824000 { compatible = "qcom,sdhci-msm"; reg = <0x07824900 0x500>, <0x07824000 0x800>; Loading
sound/soc/msm/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ snd-soc-msm8x16-objs += msm8952-slimbus.o msm8952-dai-links.o obj-$(CONFIG_SND_SOC_MSM8X16) += snd-soc-msm8x16.o # for MDM 9650 sound card driver snd-soc-mdm9650-objs := mdm9650.o snd-soc-mdm9650-objs := mdm9650.o msm-audio-pinctrl.o obj-$(CONFIG_SND_SOC_MDM9650) += snd-soc-mdm9650.o # for MDM 9607 sound card driver Loading