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

Commit 233056c9 authored by jinjiawu's avatar jinjiawu Committed by Bharath
Browse files

Add Audio drivers for FP3 [1/4]

Enable the config and add all audio driver components
for 'aw8898' codec.

Issue: FP3-A11#202
Change-Id: I96364baea71fe221eaa9086a312e131e66f1d75c
(cherry picked from commit 327728b2)
parent cbbe3071
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -115,19 +115,20 @@
			qcom,msm-mi2s-tx-lines = <2>;
		};

		dai_mi2s4: qcom,msm-dai-q6-mi2s-quin {
		dai_mi2s4: qcom,msm-dai-q6-mi2s-senary {
			compatible = "qcom,msm-dai-q6-mi2s";
			qcom,msm-dai-q6-mi2s-dev-id = <4>;
			qcom,msm-mi2s-rx-lines = <1>;
			qcom,msm-mi2s-tx-lines = <2>;
			qcom,msm-mi2s-rx-lines = <3>;
			qcom,msm-mi2s-tx-lines = <0>;
		};

		dai_mi2s5: qcom,msm-dai-q6-mi2s-senary {
		dai_mi2s5: qcom,msm-dai-q6-mi2s-quin {
			compatible = "qcom,msm-dai-q6-mi2s";
			qcom,msm-dai-q6-mi2s-dev-id = <6>;
			qcom,msm-mi2s-rx-lines = <0>;
			qcom,msm-mi2s-tx-lines = <3>;
			qcom,msm-dai-q6-mi2s-dev-id = <4>;
			qcom,msm-mi2s-rx-lines = <3>;
			qcom,msm-mi2s-tx-lines = <0>;
		};

	};

	lsm: qcom,msm-lsm-client {
+38 −36
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@
	};

	int_codec: sound {
		status = "okay";
		status = "disabled";
		compatible = "qcom,msm8952-audio-codec";
		qcom,model = "msm8953-snd-card-mtp";
		reg = <0xc051000 0x4>,
@@ -76,10 +76,10 @@
				"WSA_SPK OUT", "VDD_WSA_SWITCH",
				"SpkrMono WSA_IN", "WSA_SPK OUT";

		qcom,cdc-us-euro-gpios = <&tlmm 63 0>;
		qcom,cdc-us-eu-gpios = <&cdc_us_euro_sw>;
		qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
		qcom,pri-mi2s-gpios = <&cdc_pri_mi2s_gpios>;
		//qcom,cdc-us-euro-gpios = <&tlmm 63 0>;
		//qcom,cdc-us-eu-gpios = <&cdc_us_euro_sw>;
		//qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
		//qcom,pri-mi2s-gpios = <&cdc_pri_mi2s_gpios>;
		qcom,quin-mi2s-gpios = <&cdc_quin_mi2s_gpios>;

		qcom,afe-rxtx-lb;
@@ -136,14 +136,8 @@
		qcom,msm-vdd-wsa-switch-current = <10000>;
	};

	cdc_us_euro_sw: msm_cdc_pinctrl_us_euro_sw {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cross_conn_det_act>;
		pinctrl-1 = <&cross_conn_det_sus>;
	};

	cdc_comp_gpios: cdc_comp_pinctrl {
		status = "disabled";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_pdm_comp_lines_act>;
@@ -151,6 +145,7 @@
	};

	cdc_pri_mi2s_gpios: msm_cdc_pinctrl_pri {
		status = "disabled";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act>;
@@ -170,7 +165,7 @@
		#address-cells = <1>;
		#size-cells = <0>;
		wsa881x_i2c_f: wsa881x-i2c-codec@f {
			status = "okay";
			status = "disabled";
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0f>;
			qcom,wsa-analog-vi-gpio = <&wsa881x_analog_vi_gpio>;
@@ -179,7 +174,7 @@
				<&wsa881x_analog_reset_gpio>;
		};
		wsa881x_i2c_45: wsa881x-i2c-codec@45 {
			status = "okay";
			status = "disabled";
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x45>;
		};
@@ -198,25 +193,34 @@
		pinctrl-1 = <&wsa_clk_off>;
	};
	wsa881x_analog_reset_gpio: wsa881x_analog_reset_pctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&wsa_reset_on>;
		pinctrl-1 = <&wsa_reset_off>;
		status = "disabled";
		//compatible = "qcom,msm-cdc-pinctrl";
		//pinctrl-names = "aud_active", "aud_sleep";
		//pinctrl-0 = <&wsa_reset_on>;
		//pinctrl-1 = <&wsa_reset_off>;
	};

	ext_codec: sound-9335 {
		status = "disabled";
		status = "okay";
		compatible = "qcom,msm8952-audio-slim-codec";
		qcom,model = "msm8953-tasha-snd-card";

		reg = <0xc051000 0x4>,
			<0xc051004 0x4>,
			<0xc055000 0x4>,
			<0xc052000 0x4>;
			<0xc052000 0x4>,
			<0xc056000 0x4>,
			<0xc054000 0x4>,
			<0xc053000 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";
			"csr_gp_io_mux_quin_ctl",
			"csr_gp_io_lpaif_qui_pcm_sec_mode_muxsel",
			"csr_gp_io_mux_mic_ext_clk_ctl",
			"csr_gp_io_mux_sec_tlmm_ctl";

		qcom,msm-ext-pa = "quinary";

		qcom,audio-routing =
			"AIF4 VI", "MCLK",
@@ -254,10 +258,8 @@
			"SpkrRight IN", "SPK2 OUT";

		qcom,tasha-mclk-clk-freq = <9600000>;
		qcom,cdc-us-euro-gpios = <&tlmm 63 0>;
		qcom,msm-mbhc-hphl-swh = <0>;
		qcom,msm-mbhc-gnd-swh = <0>;
		qcom,cdc-us-eu-gpios = <&cdc_us_euro_sw>;
		qcom,msm-mbhc-hphl-swh = <1>;
		qcom,msm-mbhc-gnd-swh = <1>;
		qcom,quin-mi2s-gpios = <&cdc_quin_mi2s_gpios>;

		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
@@ -302,10 +304,10 @@
				"msm-dai-q6-dev.12293", "msm-dai-q6-dev.16396",
				"msm-dai-q6-dev.8194", "msm-dai-q6-dev.8195";

		asoc-codec = <&stub_codec>, <&hdmi_dba>;
		asoc-codec-names = "msm-stub-codec.1", "msm-hdmi-dba-codec-rx";
		asoc-codec = <&stub_codec>, <&dai_mi2s5>;
		asoc-codec-names = "msm-stub-codec.1", "msm-dai-q6-mi2s.5";

		qcom,wsa-max-devs = <2>;
		qcom,wsa-max-devs = <0>;
		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
				<&wsa881x_213>, <&wsa881x_214>;
		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
@@ -317,7 +319,7 @@
	};

	wcd9xxx_intc: wcd9xxx-irq {
		status = "disabled";
		status = "okay";
		compatible = "qcom,wcd9xxx-irq";
		interrupt-controller;
		#interrupt-cells = <1>;
@@ -328,7 +330,7 @@
	};

	clock_audio: audio_ext_clk {
		status = "disabled";
		status = "okay";
		compatible = "qcom,audio-ref-clk";
		clock-names = "osr_clk";
		qcom,node_has_rpm_clock;
@@ -341,7 +343,7 @@
	};

	wcd_rst_gpio: msm_cdc_pinctrl@67 {
		status = "disabled";
		status = "okay";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_reset_active>;
@@ -350,16 +352,16 @@
};

&slim_msm {
	status = "disabled";
	status = "okay";

	dai_slim: msm_dai_slim {
		status = "disabled";
		status = "okay";
		compatible = "qcom,msm-dai-slim";
		elemental-addr = [ff ff ff fe 17 02];
	};

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

@@ -385,7 +387,7 @@

		qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";
		qcom,cdc-micbias1-mv = <1800>;
		qcom,cdc-micbias2-mv = <1800>;
		qcom,cdc-micbias2-mv = <2800>;
		qcom,cdc-micbias3-mv = <1800>;
		qcom,cdc-micbias4-mv = <1800>;

@@ -442,7 +444,7 @@

&pm8953_1 {
	pmic_analog_codec: analog-codec@f000 {
		status = "okay";
		status = "disabled";
		compatible = "qcom,pmic-analog-codec";
		reg = <0xf000 0x200>;
		#address-cells = <2>;
+13 −0
Original line number Diff line number Diff line
@@ -58,6 +58,19 @@
	};
};

&i2c_6 { /* BLSP2 QUP2 (smart amp) */
	status = "ok";
	/* AWINIC AW8898 Smart PA */
	aw8898_smartpa@34{
		compatible = "awinic,aw8898_smartpa";
		reg = <0x34>;
		reset-gpio = <&tlmm 21 0>;
		irq-gpio = <&tlmm 20 0>;
		status = "okay";
	};
	/* AWINIC AW8898 Smart PA End */
};

&sdhc_1 {
	/* device core power supply */
	vdd-supply = <&pm8953_l8>;
+34 −145
Original line number Diff line number Diff line
@@ -50,32 +50,6 @@
					bias-pull-down;
				};
			};

			uart1_console_active: uart1_console_active {
				mux {
					pins = "gpio20", "gpio21";
					function = "blsp_uart6";
				};

				config {
					pins = "gpio20", "gpio21";
					drive-strength = <2>;
					bias-disable;
				};
			};

			uart1_console_sleep: uart1_console_sleep {
				mux {
					pins = "gpio20", "gpio21";
					function = "blsp_uart6";
				};

				config {
					pins = "gpio20", "gpio21";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};
		cci {
			cci0_active: cci0_active {
@@ -684,32 +658,6 @@
			};
		};

		blsp2_uart1_active: blsp2_uart1_active {
			mux {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				function = "blsp_uart6";
			};

			config {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				drive-strength = <16>;
				bias-disable;
			};
		};

		blsp2_uart1_sleep: blsp2_uart1_sleep {
			mux {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				function = "gpio";
			};

			config {
				pins = "gpio20", "gpio21", "gpio22", "gpio23";
				drive-strength = <2>;
				bias-disable;
			};
		};

		/* SDC pin type */
		sdc1_clk_on: sdc1_clk_on {
			config {
@@ -964,6 +912,36 @@
			};
		};

		i2c_6 {
			i2c_6_active: i2c_6_active {
				/* active state */
				mux {
					pins = "gpio22", "gpio23";
					function = "blsp_i2c6";
				};

				config {
					pins = "gpio22", "gpio23";
					drive-strength = <2>;
					bias-disable;
				};
			};

			i2c_6_sleep: i2c_6_sleep {
				/* suspended state */
				mux {
					pins = "gpio22", "gpio23";
					function = "gpio";
				};

				config {
					pins = "gpio22", "gpio23";
					drive-strength = <2>;
					bias-disable;
				};
			};
		};

		nfc {
			nfc_int_active: nfc_int_active {
				/* active state */
@@ -1254,35 +1232,6 @@
			};
		};

		cross-conn-det {
			cross_conn_det_act: lines_on {
				mux {
					pins = "gpio63";
					function = "gpio";
				};

				config {
					pins = "gpio63";
					drive-strength = <8>;
					output-low;
					bias-pull-down;
				};
			};

			cross_conn_det_sus: lines_off {
				mux {
					pins = "gpio63";
					function = "gpio";
				};

				config {
					pins = "gpio63";
					drive-strength = <2>;
					bias-pull-down;
				};
			};
		};

		/* WSA VI sense */
		wsa-vi {
			wsa_vi_on: wsa_vi_on {
@@ -1370,24 +1319,24 @@
		pri-tlmm-lines {
			pri_tlmm_lines_act: pri_tlmm_lines_act {
				mux {
					pins = "gpio91", "gpio93";
					pins = "gpio91", "gpio93", "gpio88";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio93";
					pins = "gpio91", "gpio93", "gpio88";
					drive-strength = <8>;
				};
			};

			pri_tlmm_lines_sus: pri_tlmm_lines_sus {
				mux {
					pins = "gpio91", "gpio93";
					pins = "gpio91", "gpio93", "gpio88";
					function = "pri_mi2s";
				};

				config {
					pins = "gpio91", "gpio93";
					pins = "gpio91", "gpio93", "gpio88";
					drive-strength = <2>;
					bias-pull-down;
				};
@@ -1421,66 +1370,6 @@
			};
		};

		spi6 {
			spi6_default: spi6_default {
				/* active state */
				mux {
					/* MOSI, MISO, CLK */
					pins = "gpio20", "gpio21", "gpio23";
					function = "blsp_spi6";
				};

				config {
					pins = "gpio20", "gpio21", "gpio23";
					drive-strength = <12>; /* 12 MA */
					bias-disable = <0>; /* No PULL */
				};
			};

			spi6_sleep: spi6_sleep {
				/* suspended state */
				mux {
					/* MOSI, MISO, CLK */
					pins = "gpio20", "gpio21", "gpio23";
					function = "gpio";
				};

				config {
					pins = "gpio20", "gpio21", "gpio23";
					drive-strength = <2>; /* 2 MA */
					bias-pull-down; /* PULL Down */
				};
			};

			spi6_cs0_active: cs0_active {
				/* CS */
				mux {
					pins = "gpio22";
					function = "blsp_spi6";
				};

				config {
					pins = "gpio22";
					drive-strength = <2>;
					bias-disable = <0>;
				};
			};

			spi6_cs0_sleep: cs0_sleep {
				/* CS */
				mux {
					pins = "gpio22";
					function = "gpio";
				};

				config {
					pins = "gpio22";
					drive-strength = <2>;
					bias-disable = <0>;
				};
			};
		};

		/* add pingrp for touchscreen */
		ts_int_default: ts_int_default {
			mux {
+27 −63
Original line number Diff line number Diff line
@@ -188,7 +188,7 @@
		i2c2 = &i2c_2;
		i2c3 = &i2c_3;
		i2c5 = &i2c_5;
		spi6 = &spi_6;
		i2c6 = &i2c_6;
	};

	soc: soc {
@@ -624,42 +624,6 @@
		status = "disabled";
	};

	blsp2_uart1: uart@7af0000 {
		compatible = "qcom,msm-hsuart-v14";
		reg = <0x7af0000 0x200>,
			<0x7ac4000 0x1f000>;
		reg-names = "core_mem", "bam_mem";

		interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
		#address-cells = <0>;
		interrupt-parent = <&blsp2_uart1>;
		interrupts = <0 1 2>;
		#interrupt-cells = <1>;
		interrupt-map-mask = <0xffffffff>;
		interrupt-map = <0 &intc 0 307 0
				1 &intc 0 239 0
				2 &tlmm 21 0>;

		qcom,inject-rx-on-wakeup;
		qcom,rx-char-to-inject = <0xFD>;
		qcom,master-id = <84>;
		clock-names = "core_clk", "iface_clk";
		clocks = <&clock_gcc clk_gcc_blsp2_uart2_apps_clk>,
			<&clock_gcc clk_gcc_blsp2_ahb_clk>;
		pinctrl-names = "sleep", "default";
		pinctrl-0 = <&blsp2_uart1_sleep>;
		pinctrl-1 = <&blsp2_uart1_active>;
		qcom,bam-tx-ep-pipe-index = <2>;
		qcom,bam-rx-ep-pipe-index = <3>;
		qcom,msm-bus,name = "blsp2_uart1";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
				<84 512 0 0>,
				<84 512 500 800>;
		status = "disabled";
	};

	blsp1_serial1: serial@78b0000 {
		compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
		reg = <0x78b0000 0x200>;
@@ -686,32 +650,6 @@
		qcom,summing-threshold = <10>;
	};

	spi_6: spi@7af6000 { /* BLSP2 QUP2 */
		compatible = "qcom,spi-qup-v2";
		#address-cells = <1>;
		#size-cells = <0>;
		reg-names = "spi_physical", "spi_bam_physical";
		reg = <0x7af6000 0x600>,
			<0x7ac4000 0x1f000>;
		interrupt-names = "spi_irq", "spi_bam_irq";
		interrupts = <0 300 0>, <0 239 0>;
		spi-max-frequency = <19200000>;
		pinctrl-names = "spi_default", "spi_sleep";
		pinctrl-0 = <&spi6_default &spi6_cs0_active>;
		pinctrl-1 = <&spi6_sleep &spi6_cs0_sleep>;
		clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
			<&clock_gcc clk_gcc_blsp2_qup2_spi_apps_clk>;
		clock-names = "iface_clk", "core_clk";
		qcom,infinite-mode = <0>;
		qcom,use-bam;
		qcom,use-pinctrl;
		qcom,ver-reg-exists;
		qcom,bam-consumer-pipe-index = <6>;
		qcom,bam-producer-pipe-index = <7>;
		qcom,master-id = <84>;
		status = "disabled";
	};

	i2c_1: i2c@78b5000 { /* BLSP1 QUP1 */
		compatible = "qcom,i2c-msm-v2";
		#address-cells = <1>;
@@ -815,6 +753,32 @@
		status = "disabled";
	};

	i2c_6: i2c@7af6000 { /* BLSP2 QUP2 */
		compatible = "qcom,i2c-msm-v2";
		#address-cells = <1>;
		#size-cells = <0>;
		reg-names = "qup_phys_addr";
		reg = <0x7af6000 0x600>;
		interrupt-names = "qup_irq";
		interrupts = <0 300 0>;
		qcom,clk-freq-out = <400000>;
		qcom,clk-freq-in  = <19200000>;
		clock-names = "iface_clk", "core_clk";
		clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
			<&clock_gcc clk_gcc_blsp2_qup2_i2c_apps_clk>;

		pinctrl-names = "i2c_active", "i2c_sleep";
		pinctrl-0 = <&i2c_6_active>;
		pinctrl-1 = <&i2c_6_sleep>;
		qcom,noise-rjct-scl = <0>;
		qcom,noise-rjct-sda = <0>;
		qcom,master-id = <84>;
		dmas = <&dma_blsp2 6 64 0x20000020 0x20>,
			<&dma_blsp2 7 32 0x20000020 0x20>;
		dma-names = "tx", "rx";
		status = "ok";
	};

	slim_msm: slim@c140000{
		cell-index = <1>;
		compatible = "qcom,slim-ngd";
Loading