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

Commit 020c5f35 authored by Simmi Pateriya's avatar Simmi Pateriya
Browse files

ARM: dts: msm: add support for wcd9335 on 8937



Add support for wcd9335 codec on 8937 cdp. Add the sound node
and codec nodes for wcd9335.

Change-Id: Ia40a64a492d20e1d0fbffd2434dd52688ca56c2c
Signed-off-by: default avatarSimmi Pateriya <simmip@codeaurora.org>
parent 58be1b1f
Loading
Loading
Loading
Loading
+113 −5
Original line number Diff line number Diff line
@@ -291,7 +291,7 @@
		qcom,clk_div = <27>;
	};

	sound {
	int_codec: sound {
		compatible = "qcom,msm8952-audio-codec";
		qcom,model = "msm8952-snd-card-mtp";
		reg = <0xc051000 0x4>,
@@ -382,8 +382,105 @@
		asoc-codec-names = "msm-stub-codec.1", "cajon_codec";
	};

	ext_codec: sound-9335 {
		compatible = "qcom,msm8952-audio-slim-codec";
		qcom,model = "msm8952-tasha-snd-card";
		status = "disabled";
		reg = <0xc051000 0x4>,
		    <0xc051004 0x4>,
		    <0xc055000 0x4>,
		    <0xc052000 0x4>;

		reg-names = "csr_gp_io_mux_mic_ctl",
			"csr_gp_io_mux_spkr_ctl",
			"csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel",
			"csr_gp_io_mux_quin_ctl";

		qcom,audio-routing =
			"AIF4 VI", "MCLK",
			"RX_BIAS", "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,msm-gpios =
			"us_eu_gpio";
		qcom,pinctrl-names =
			"all_off",
			"us_eu_gpio_act";
		pinctrl-names =
			"all_off",
			"us_eu_gpio_act";
		pinctrl-0 = <&cross_conn_det_sus>;
		pinctrl-1 = <&cross_conn_det_act>;
		qcom,cdc-us-euro-gpios = <&tlmm 63 0>;

		qcom,msm-mbhc-hphl-swh = <0>;
		qcom,msm-mbhc-gnd-swh = <0>;
		qcom,tasha-mclk-clk-freq = <9600000>;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&cpe>, <&lpa>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-cpe-lsm",
				"msm-pcm-lpa";
		asoc-cpu = <&dai_pri_auxpcm>,
				<&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s5>,
				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
				<&afe_pcm_rx>, <&afe_pcm_tx>,
				 <&afe_proxy_rx>, <&afe_proxy_tx>,
				<&incall_record_rx>, <&incall_record_tx>,
				<&incall_music_rx>, <&incall_music_2_rx>,
				<&sb_5_rx>,  <&bt_sco_rx>,
				<&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
				"msm-dai-q6-mi2s.2",
				"msm-dai-q6-mi2s.3", "msm-dai-q6-mi2s.5",
				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
				"msm-dai-q6-dev.16395", "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-dev.32770", "msm-dai-q6-dev.16394",
				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
	};

	i2c@7af8000 {
		wsa881x-i2c-codec@e {
		wsa881x_i2c_e: wsa881x-i2c-codec@e {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0e>;
			qcom,msm-gpios = "wsa_clk",
@@ -414,11 +511,11 @@
			pinctrl-6 = <&wsa_clk_off &wsa_reset_on &wsa_vi_on>;
			pinctrl-7 = <&wsa_clk_on &wsa_reset_on &wsa_vi_on>;
		};
		wsa881x-i2c-codec@44 {
		wsa881x_i2c_44: wsa881x-i2c-codec@44 {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x44>;
		};
		wsa881x-i2c-codec@f {
		wsa881x_i2c_f: wsa881x-i2c-codec@f {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0f>;
			qcom,msm-gpios = "wsa_clk",
@@ -449,10 +546,21 @@
			pinctrl-6 = <&wsa_clk_off &wsa_reset_on &wsa_vi_on>;
			pinctrl-7 = <&wsa_clk_on &wsa_reset_on &wsa_vi_on>;
		};
		wsa881x-i2c-codec@45 {
		wsa881x_i2c_45: wsa881x-i2c-codec@45 {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x45>;
		};

		wcd9xxx_intc: wcd9xxx-irq {
			compatible = "qcom,wcd9xxx-irq";
			status = "disabled";
			interrupt-controller;
			#interrupt-cells = <1>;
			interrupt-parent = <&tlmm>;
			interrupts = <73 0>;
			inteerupt-names = "cdc-int";
			qcom,gpio-connect = <&tlmm 73 0>;
		};
	};
};

+134 −7
Original line number Diff line number Diff line
@@ -22,6 +22,35 @@
	qcom,follow-otst2-rb-disabled;
};

&ext_codec {
	qcom,wsa-max-devs = <1>;
	qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
			<&wsa881x_213>, <&wsa881x_214>;
	qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
				"SpkrRight", "SpkrLeft";
};

&pm8937_gpios {
	gpio@c000 {
		status = "ok";
		qcom,mode = <1>;
		qcom,pull = <5>;
		qcom,vin-sel = <0>;
		qcom,src-sel = <2>;
		qcom,master-en = <1>;
		qcom,out-strength = <2>;
	};
	gpio@c600 {
		status = "ok";
		qcom,mode = <1>;
		qcom,pull = <5>;
		qcom,vin-sel = <0>;
		qcom,src-sel = <0>;
		qcom,master-en = <1>;
		qcom,out-strength = <2>;
	};
};

&soc {
	gpio_keys {
		compatible = "gpio-keys";
@@ -75,16 +104,114 @@
		qcom,dig-vtg-max = <1800000>;
	};

	sound {
		asoc-wsa-codec-names = "wsa881x-i2c-codec.8-000f";
		asoc-wsa-codec-prefixes = "SpkrMono";
	clock_audio: audio_ext_clk {
		compatible = "qcom,audio-ref-clk";
		qcom,audio-ref-clk-gpio = <&pm8937_gpios 1 0>;
		clock-names = "osr_clk";
		clocks = <&clock_gcc clk_div_clk2>;
		qcom,node_has_rpm_clock;
		#clock-cells = <1>;
	};

		msm-vdd-wsa-switch-supply = <&pm8937_l13>;
		qcom,msm-vdd-wsa-switch-voltage = <3075000>;
		qcom,msm-vdd-wsa-switch-current = <5000>;
		qcom,msm-hs-micbias-type = "internal";
	slim_msm: slim@c140000{
		msm_dai_slim {
			compatible = "qcom,msm-dai-slim";
			status = "disabled";
			elemental-addr = [ff ff ff fe 17 02];
		};

		tasha_codec {
			compatible = "qcom,tasha-slim-pgd";
			status = "disabled";
			elemental-addr = [00 01 A0 01 17 02];

			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 68 0>;

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

			cdc-buck-sido-supply = <&eldo2_pm8937>;
			qcom,cdc-buck-sido-voltage = <1800000 1800000>;
			qcom,cdc-buck-sido-current = <250000>;

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

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

			cdc-vdd-px-supply = <&pm8937_l5>;
			qcom,cdc-vdd-px-voltage = <1800000 1800000>;
			qcom,cdc-vdd-px-current = <10000>;

			cdc-vdd-mic-bias-supply = <&pm8937_l13>;
			qcom,cdc-vdd-mic-bias-voltage = <3075000 3075000>;
			qcom,cdc-vdd-mic-bias-current = <15000>;

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

			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 = <9600000>;
			qcom,cdc-slim-ifd = "tasha-slim-ifd";
			qcom,cdc-slim-ifd-elemental-addr = [00 00 A0 01 17 02];
			qcom,cdc-dmic-sample-rate = <4800000>;

			clock-names = "wcd_clk";
			clocks = <&clock_audio clk_audio_pmi_clk>;

			swr_master {
				compatible = "qcom,swr-wcd";
				#address-cells = <2>;
				#size-cells = <0>;

				wsa881x_211: wsa881x@20170211 {
					compatible = "qcom,wsa881x";
					reg = <0x00 0x20170211>;
					qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
				};

				wsa881x_212: wsa881x@20170212 {
					compatible = "qcom,wsa881x";
					reg = <0x00 0x20170212>;
					qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
				};

				wsa881x_213: wsa881x@20170213 {
					compatible = "qcom,wsa881x";
					reg = <0x00 0x20170213>;
					qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
				};

				wsa881x_214: wsa881x@20170214 {
					compatible = "qcom,wsa881x";
					reg = <0x00 0x20170214>;
					qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
				};
			};
		};
	};
};

&int_codec {
		qcom,msm-hs-micbias-type = "internal";
	};

&tlmm {
	tlmm_gpio_key {
+9 −0
Original line number Diff line number Diff line
@@ -372,4 +372,13 @@
		qcom,cpr-quot-adjust-scaling-factor-max = <0 1400 1400>;
		qcom,cpr-fuse-revision = <69 39 3 0>;
	};

	eldo2_pm8937: eldo2 {
		compatible = "regulator-fixed";
		regulator-name = "eldo2_pm8937";
		startup-delay-us = <0>;
		enable-active-high;
		gpio = <&pm8937_gpios 7 0>;
		regulator-always-on;
	};
};