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

Commit 67633898 authored by Deven Patel's avatar Deven Patel
Browse files

ARM: dts: msm: Add audio DT changes for mdmcalifornium



Add device tree changes for mdmcalifornium target to instantiate
sound card and enable audio/voice usecases.
Add pincontrol configuration for MI2S gpios for mdmcalifornium.

Change-Id: I8c37ab285a848adc45cd57b8a0843eb3dadd4b88
Signed-off-by: default avatarDeven Patel <cdevenp@codeaurora.org>
parent 0191ccd5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ Required properties:

 - compatible : "qcom,taiko-slim-pgd" or "qcom,tapan-slim-pgd" for Tapan codec
		or "qcom,tomtom-slim-pgd" for the Tomtom codec
		or "qcom,tasha-slim-pgd" for Tasha Codec
		or "qcom,tasha-slim-pgd" or "qcom,tasha-i2c-pgd" for Tasha Codec
 - elemental-addr: codec slimbus slave PGD enumeration address.(48 bits)

 - qcom,cdc-reset-gpio: gpio used for codec SOC reset.
+48 −0
Original line number Diff line number Diff line
@@ -99,6 +99,54 @@
		pinctrl-0 = <&i2c_3_active>;
		pinctrl-1 = <&i2c_3_sleep>;
		status = "disabled";

		wcd9xxx_codec@d{
			compatible = "qcom,tasha-i2c-pgd";
			reg = <0x0d>;

			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
				      30>;

			qcom,cdc-reset-gpio = <&tlmm_pinmux 90 0>;

			qcom,msm-mbhc-hphl-swh = <0>;
			qcom,msm-mbhc-gnd-swh = <0>;

			cdc-vdd-buck-supply = <&codec_buck_vreg>;
			qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
			qcom,cdc-vdd-buck-current = <650000>;

			cdc-buck-sido-supply = <&codec_buck_vreg>;
			qcom,cdc-buck-sido-voltage = <1800000 1800000>;
			qcom,cdc-buck-sido-current = <200000>;

			cdc-vdd-tx-h-supply = <&pmdcalifornium_l6>;
			qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
			qcom,cdc-vdd-tx-h-current = <25000>;

			cdc-vdd-rx-h-supply = <&pmdcalifornium_l6>;
			qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
			qcom,cdc-vdd-rx-h-current = <25000>;

			cdc-vddpx-1-supply = <&pmdcalifornium_l6>;
			qcom,cdc-vddpx-1-voltage = <1800000 1800000>;
			qcom,cdc-vddpx-1-current = <10000>;

			qcom,cdc-static-supplies = "cdc-vdd-buck",
						   "cdc-buck-sido",
						   "cdc-vdd-tx-h",
						   "cdc-vdd-rx-h",
						   "cdc-vddpx-1";

			qcom,cdc-micbias1-mv = <1800>;
			qcom,cdc-micbias2-mv = <1800>;
			qcom,cdc-micbias3-mv = <1800>;
			qcom,cdc-micbias4-mv = <1800>;
			qcom,cdc-mclk-clk-rate = <12288000>;
			qcom,cdc-dmic-sample-rate = <4800000>;
		};
	};

	i2c_4: i2c@78B8000 { /* BLSP1 QUP4 */
+141 −0
Original line number Diff line number Diff line
@@ -404,5 +404,146 @@
				bias-disable;
			};
		};

		i2s_mclk {
			i2s_mclk_sleep: i2s_mclk_sleep {
				mux {
					pins = "gpio71";
					function = "i2s_mclk";
				};

				config {
					pins = "gpio71";
					drive-strength = <2>;	/* 2 mA */
					bias-pull-down;		/* PULL DOWN */
				};
			};

			i2s_mclk_active: i2s_mclk_active {
				mux {
					pins = "gpio71";
					function = "i2s_mclk";
				};

				config {
					pins = "gpio71";
					drive-strength = <8>;	/* 8 mA */
					bias-disable;		/* NO PULL*/
					output-high;
				};
			};

		};

		pmx_pri_mi2s_dout {
			pri_mi2s_ws_sleep: pri_mi2s_ws_sleep {
				mux {
					pins = "gpio12";
					function = "pri_mi2s_ws_a";
				};

				config {
					pins = "gpio12";
					drive-strength = <2>;	/* 2 mA */
					bias-pull-down;		/* PULL DOWN */
				};
			};

			pri_mi2s_sck_sleep: pri_mi2s_sck_sleep {
				mux {
					pins = "gpio15";
					function = "pri_mi2s_sck_a";
				};

				config {
					pins = "gpio15";
					drive-strength = <2>;	/* 2 mA */
					bias-pull-down;		/* PULL DOWN */
				};
			};

			pri_mi2s_dout_sleep: pri_mi2s_dout_sleep {
				mux {
					pins = "gpio14";
					function = "pri_mi2s_data1_a";
				};

				config {
					pins = "gpio14";
					drive-strength = <2>;	/* 2 mA */
					bias-pull-down;		/* PULL DOWN */
				};
			};

			pri_mi2s_ws_active: pri_mi2s_ws_active {
				mux {
					pins = "gpio12";
					function = "pri_mi2s_ws_a";
				};

				config {
					pins = "gpio12";
					drive-strength = <8>;	/* 8 mA */
					bias-disable;		/* NO PULL*/
					output-high;
				};
			};

			pri_mi2s_sck_active: pri_mi2s_sck_active {
				mux {
					pins = "gpio15";
					function = "pri_mi2s_sck_a";
				};

				config {
					pins = "gpio15";
					drive-strength = <8>;	/* 8 mA */
					bias-disable;		/* NO PULL*/
					output-high;
				};
			};

			pri_mi2s_dout_active: pri_mi2s_dout_active {
				mux {
					pins = "gpio14";
					function = "pri_mi2s_data1_a";
				};

				config {
					pins = "gpio14";
					drive-strength = <8>;	/* 8 mA */
					bias-disable;		/* NO PULL*/
					output-high;
				};
			};
		};

		pmx_pri_mi2s_din {
			pri_mi2s_din_sleep: pri_mi2s_din_sleep {
				mux {
					pins = "gpio13";
					function = "pri_mi2s_data0_a";
				};

				config {
					pins = "gpio13";
					drive-strength = <2>;	/* 2 mA */
					bias-pull-down;		/* PULL DOWN */
				};
			};

			pri_mi2s_din_active: pri_mi2s_din_active {
				mux {
					pins = "gpio13";
					function = "pri_mi2s_data0_a";
				};

				config {
					pins = "gpio13";
					drive-strength = <8>;	/* 8 mA */
					bias-disable;		/* NO PULL */
				};
			};
		};
	};
};
+242 −0
Original line number Diff line number Diff line
@@ -702,6 +702,248 @@
	mitigation_profile0: qcom,limit_info-0 {
		qcom,temperature-sensor = <&sensor_information3>;
	};

	wcd9xxx_intc: wcd9xxx-irq {
		compatible = "qcom,wcd9xxx-irq";
		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&tlmm_pinmux>;
		qcom,gpio-connect = <&tlmm_pinmux 94 0>;
	};

	clock_audio: audio_ext_clk {
		compatible = "qcom,audio-ref-clk";
		qcom,codec-mclk-clk-freq = <12288000>;
		pinctrl-names = "sleep", "active";
		pinctrl-0 = <&i2s_mclk_sleep>;
		pinctrl-1 = <&i2s_mclk_active>;
		#clock-cells = <1>;
	};

	sound {
		compatible = "qcom,mdm-audio-tasha";
		qcom,model = "mdm-tasha-i2s-snd-card";

		qcom,audio-routing =
			"AIF4 VI", "MCLK",
			"RX_BIAS", "MCLK",
			"MADINPUT", "MCLK",
			"AMIC2", "MIC BIAS2",
			"MIC BIAS2", "Headset Mic",
			"AMIC3", "MIC BIAS2",
			"MIC BIAS2", "ANCRight Headset Mic",
			"AMIC4", "MIC BIAS2",
			"MIC BIAS2", "ANCLeft Headset Mic",
			"AMIC5", "MIC BIAS3",
			"MIC BIAS3", "Handset Mic",
			"AMIC6", "MIC BIAS4",
			"MIC BIAS4", "Analog Mic6",
			"DMIC0", "MIC BIAS1",
			"MIC BIAS1", "Digital Mic0",
			"DMIC1", "MIC BIAS1",
			"MIC BIAS1", "Digital Mic1",
			"DMIC2", "MIC BIAS3",
			"MIC BIAS3", "Digital Mic2",
			"DMIC3", "MIC BIAS3",
			"MIC BIAS3", "Digital Mic3",
			"DMIC4", "MIC BIAS4",
			"MIC BIAS4", "Digital Mic4",
			"DMIC5", "MIC BIAS4",
			"MIC BIAS4", "Digital Mic5",
			"SpkrLeft IN", "SPK1 OUT",
			"SpkrRight IN", "SPK2 OUT";

		qcom,tasha-mclk-clk-freq = <12288000>;
		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>,
				<&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",
				"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";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
		qcom,aux-codec = <&stub_codec>;
	};

	qcom,msm-adsp-loader {
		compatible = "qcom,adsp-loader";
		qcom,adsp-state = <0>;
		qcom,proc-img-to-load = "modem";
	};

	qcom,msm-audio-ion {
		compatible = "qcom,msm-audio-ion";
	};

	pcm0: qcom,msm-pcm {
		compatible = "qcom,msm-pcm-dsp";
		qcom,msm-pcm-dsp-id = <0>;
	};

	routing: qcom,msm-pcm-routing {
		compatible = "qcom,msm-pcm-routing";
	};

	pcm1: qcom,msm-pcm-low-latency {
		compatible = "qcom,msm-pcm-dsp";
		qcom,msm-pcm-dsp-id = <1>;
		qcom,msm-pcm-low-latency;
		qcom,latency-level = "ultra";
	};

	qcom,msm-compr-dsp {
		compatible = "qcom,msm-compr-dsp";
	};

	voip: qcom,msm-voip-dsp {
		compatible = "qcom,msm-voip-dsp";
	};

	voice: qcom,msm-pcm-voice {
		compatible = "qcom,msm-pcm-voice";
		qcom,destroy-cvd;
	};

	stub_codec: qcom,msm-stub-codec {
		compatible = "qcom,msm-stub-codec";
	};

	qcom,msm-dai-fe {
		compatible = "qcom,msm-dai-fe";
	};

	afe: qcom,msm-pcm-afe {
		compatible = "qcom,msm-pcm-afe";
	};

	 hostless: qcom,msm-pcm-hostless {
		compatible = "qcom,msm-pcm-hostless";
	};

	host_pcm: qcom,msm-voice-host-pcm {
		compatible = "qcom,msm-voice-host-pcm";
	};

	loopback: qcom,msm-pcm-loopback {
		compatible = "qcom,msm-pcm-loopback";
	};

	qcom,msm-dai-stub {
		compatible = "qcom,msm-dai-stub";
		dtmf_tx: qcom,msm-dai-stub-dtmf-tx {
			compatible = "qcom,msm-dai-stub-dev";
			qcom,msm-dai-stub-dev-id = <4>;
		};

		rx_capture_tx: qcom,msm-dai-stub-host-rx-capture-tx {
			compatible = "qcom,msm-dai-stub-dev";
			qcom,msm-dai-stub-dev-id = <5>;
		};

		rx_playback_rx: qcom,msm-dai-stub-host-rx-playback-rx {
			compatible = "qcom,msm-dai-stub-dev";
			qcom,msm-dai-stub-dev-id = <6>;
		};

		tx_capture_tx: qcom,msm-dai-stub-host-tx-capture-tx {
			compatible = "qcom,msm-dai-stub-dev";
			qcom,msm-dai-stub-dev-id = <7>;
		};

		tx_playback_rx: qcom,msm-dai-stub-host-tx-playback-rx {
			compatible = "qcom,msm-dai-stub-dev";
			qcom,msm-dai-stub-dev-id = <8>;
		};
	};

	qcom,msm-dai-q6 {
		compatible = "qcom,msm-dai-q6";
		afe_pcm_rx: qcom,msm-dai-q6-be-afe-pcm-rx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <224>;
		};

		afe_pcm_tx: qcom,msm-dai-q6-be-afe-pcm-tx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <225>;
		};

		afe_proxy_rx: qcom,msm-dai-q6-afe-proxy-rx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <241>;
		};

		afe_proxy_tx: qcom,msm-dai-q6-afe-proxy-tx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <240>;
		};

		incall_record_rx: qcom,msm-dai-q6-incall-record-rx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <32771>;
		};

		incall_record_tx: qcom,msm-dai-q6-incall-record-tx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <32772>;
		};

		incall_music_rx: qcom,msm-dai-q6-incall-music-rx {
			compatible = "qcom,msm-dai-q6-dev";
			qcom,msm-dai-q6-dev-id = <32773>;
		};
	};

	pcm_dtmf: qcom,msm-pcm-dtmf {
		compatible = "qcom,msm-pcm-dtmf";
	};

	dai_pri_auxpcm: qcom,msm-pri-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 = "primary";
	};

	qcom,msm-dai-mi2s {
		compatible = "qcom,msm-dai-mi2s";
		mi2s_prim: qcom,msm-dai-q6-mi2s-prim {
			compatible = "qcom,msm-dai-q6-mi2s";
			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>;
			pinctrl-1 = <&pri_mi2s_ws_sleep
				     &pri_mi2s_sck_sleep
				     &pri_mi2s_dout_sleep>,
				    <&pri_mi2s_din_sleep>;
		};
	};
};

&gdsc_usb30 {