Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 262a73e3 authored by Viraja Kommaraju's avatar Viraja Kommaraju Committed by Gerrit - the friendly Code Review server
Browse files

ARM: dts: msm: Add audio device tree changes for mdm9640



Add device tree changes to detect sound card and
enable audio/voice usecases for mdm9640 target.
Add pin control configuration for MI2S gpios for mdm9640.

CRs-Fixed: 1033975
Change-Id: I860849a642f57853ec3e05794810d07b9a098470
Signed-off-by: default avatarViraja Kommaraju <virajak@codeaurora.org>
parent 2bf9eb78
Loading
Loading
Loading
Loading
+139 −5
Original line number Diff line number Diff line
@@ -1085,6 +1085,32 @@
			};
		};

		codec_reset {
			codec_reset_active: codec_reset_active {
				mux {
					pins = "gpio90";
					function = "gpio";
				};
				config {
					pins = "gpio90";
					drive-strength = <8>;   /* 8 MA */
					bias-disable;           /* No PULL */
					output-high;
				};
			};
			codec_reset_sleep: codec_reset_sleep {
				mux {
					pins = "gpio90";
					function = "gpio";
				};
				config {
					pins = "gpio90";
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;	        /* PULL DOWN */
				};
			};
		};

		/* pmx_pri_mi2s pins - 71, 12, 15, 14 */
		pmx_pri_mi2s {
			/* i2s_mclk_groups, fn: msm_mux_i2s_mclk */
@@ -1128,7 +1154,7 @@
					output-high;
				};
			};
			pri_mi2s_data1_active: pri_mi2s_data1_active {
			pri_mi2s_dout_active: pri_mi2s_dout_active {
				mux {
					pins = "gpio14";
					function = "pri_mi2s_data1_a";
@@ -1148,7 +1174,7 @@
				};
				config {
					pins = "gpio71";
					drive-strength = <8>;   /* 2 MA */
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;	        /* PULL DOWN */
					output-high;
				};
@@ -1178,7 +1204,7 @@
					output-high;
				};
			};
			pri_mi2s_data1_sleep: pri_mi2s_data1_sleep {
			pri_mi2s_dout_sleep: pri_mi2s_dout_sleep {
				mux {
					pins = "gpio14";
					function = "gpio";
@@ -1193,7 +1219,7 @@
		};

		pmx_pri_mi2s_din {
			pri_mi2s_data0_active: pri_mi2s_data0_active {
			pri_mi2s_din_active: pri_mi2s_din_active {
				mux {
					pins = "gpio13";
					function = "pri_mi2s_data0_a";
@@ -1206,7 +1232,7 @@
				};
			};

			pri_mi2s_data0_sleep: pri_mi2s_data0_sleep {
			pri_mi2s_din_sleep: pri_mi2s_din_sleep {
				mux {
					pins = "gpio13";
					function = "gpio";
@@ -1220,6 +1246,114 @@
			};
		};

		/* pmx_sec_mi2s pins - 71, 12, 15, 14 */
		pmx_sec_mi2s {
			/* sec_mi2s_ws_a_groups, fn: msm_mux_sec_mi2s_ws_a */
			sec_mi2s_ws_active: sec_mi2s_ws_active {
				mux {
					pins = "gpio16";
					function = "sec_mi2s_ws_a";
				};
				config {
					pins = "gpio16";
					drive-strength = <8>;   /* 8 MA */
					bias-disable;           /* No PULL */
					output-high;
				};
			};

			/* sec_mi2s_sck_a_groups, fn: sec_mi2s_sck_a */
			sec_mi2s_sck_active: sec_mi2s_sck_active {
				mux {
					pins = "gpio19";
					function = "sec_mi2s_sck_a";
				};
				config {
					pins = "gpio19";
					drive-strength = <8>;   /* 8 MA */
					bias-disable;           /* No PULL */
					output-high;
				};
			};
			sec_mi2s_dout_active: sec_mi2s_dout_active {
				mux {
					pins = "gpio18";
					function = "sec_mi2s_data1_a";
				};
				config {
					pins = "gpio18";
					drive-strength = <8>;   /* 8 MA */
					bias-disable;           /* No PULL */
					output-high;
				};
			};

			sec_mi2s_ws_sleep: sec_mi2s_ws_sleep {
				mux {
					pins = "gpio16";
					function = "gpio";
				};
				config {
					pins = "gpio16";
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;	        /* PULL DOWN */
					output-high;
				};
			};
			sec_mi2s_sck_sleep: sec_mi2s_sck_sleep {
				mux {
					pins = "gpio19";
					function = "gpio";
				};
				config {
					pins = "gpio19";
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;	        /* PULL DOWN */
					output-high;
				};
			};
			sec_mi2s_dout_sleep: sec_mi2s_dout_sleep {
				mux {
					pins = "gpio18";
					function = "gpio";
				};
				config {
					pins = "gpio18";
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;	        /* PULL DOWN */
					output-high;
				};
			};
		};

		pmx_sec_mi2s_din {
			sec_mi2s_din_active: sec_mi2s_din_active {
				mux {
					pins = "gpio17";
					function = "sec_mi2s_data0_a";
				};
				config {
					pins = "gpio17";
					drive-strength = <8>;   /* 8 MA */
					bias-disable;           /* No PULL */
					output-high;
				};
			};

			sec_mi2s_din_sleep: sec_mi2s_din_sleep {
				mux {
					pins = "gpio17";
					function = "gpio";
				};
				config {
					pins = "gpio17";
					drive-strength = <2>;   /* 2 MA */
					bias-pull-down;	        /* PULL DOWN */
					output-high;
				};
			};
		};

		pmx_smb_stat {
			pmx_smb_stat_active: pmx_smb_stat_active {
				mux {
+46 −5
Original line number Diff line number Diff line
@@ -645,6 +645,12 @@
			compatible = "qcom,wcd9xxx-i2c";
			reg = <0x0d>;
			qcom,cdc-reset-gpio = <&tlmm_pinmux 90 0>;
			pinctrl-names = "default", "idle";
			pinctrl-0 = <&codec_reset_active>;
			pinctrl-1 = <&codec_reset_sleep>;

			qcom,cdc-micbias1-ext-cap;

			interrupt-parent = <&wcd9xxx_intc>;
			interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
				      17 18 19 20 21 22 23 24 25 26 27 28 29
@@ -1296,20 +1302,25 @@
			"MIC BIAS3 External", "Digital Mic3";

		qcom,tomtom-mclk-clk-freq = <12288000>;
		qcom,mi2s-interface-mode = "pri_mi2s_master", "sec_mi2s_master";
		qcom,auxpcm-interface-mode = "pri_pcm_master", "sec_pcm_master";
		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
				<&loopback>, <&hostless>, <&afe>, <&routing>,
				<&pcm_dtmf>, <&host_pcm>;
		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";
		asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&dtmf_tx>,
				"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";
		asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_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>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-mi2s.0",
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"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",
@@ -1466,6 +1477,19 @@
		qcom,msm-auxpcm-interface = "primary";
	};

	dai_sec_auxpcm: qcom,msm-sec-auxpcm {
		compatible = "qcom,msm-auxpcm-dev";
		qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
		qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
		qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
		qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
		qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
		qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
		qcom,msm-cpudai-auxpcm-data = <0>, <0>;
		qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
		qcom,msm-auxpcm-interface = "secondary";
	};

	qcom,msm-dai-mi2s {
		compatible = "qcom,msm-dai-mi2s";
		mi2s_prim: qcom,msm-dai-q6-mi2s-prim {
@@ -1473,6 +1497,23 @@
			qcom,msm-dai-q6-mi2s-dev-id = <0>;
			qcom,msm-mi2s-rx-lines = <2>;
			qcom,msm-mi2s-tx-lines = <1>;
			pinctrl-names = "default", "idle";
			pinctrl-0 = <&pri_mi2s_ws_active
					&pri_mi2s_sck_active
					&pri_mi2s_dout_active
					&pri_mi2s_din_active
					&i2s_mclk_active>;
			pinctrl-1 = <&pri_mi2s_ws_sleep
					&pri_mi2s_sck_sleep
					&pri_mi2s_dout_sleep
					&pri_mi2s_din_sleep
					&i2s_mclk_sleep>;
		};
		mi2s_sec: qcom,msm-dai-q6-mi2s-sec {
			compatible = "qcom,msm-dai-q6-mi2s";
			qcom,msm-dai-q6-mi2s-dev-id = <1>;
			qcom,msm-mi2s-rx-lines = <2>;
			qcom,msm-mi2s-tx-lines = <1>;
		};
	};