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

Commit f4afb30b authored by Asish Bhattacharya's avatar Asish Bhattacharya
Browse files

ARM: dts: msm: Add codec and WSA device entries



Add snapshot for audio device tree for MSM targets. The code is
migrated from msm-3.10 kernel at the below commit -
ef68df2a5ef9f0e94a4425205bfd7f84406667c8
(Merge "Input: optimize events_per_packet count calculation")

Resolved dtsi entries for pin control convention as per 3.18

Change-Id: Iad9ceaea4cb93e2eb36f08df0990c5cd63507cc4
Signed-off-by: default avatarAsish Bhattacharya <asishb@codeaurora.org>
parent b9de234b
Loading
Loading
Loading
Loading
+85 −2
Original line number Diff line number Diff line
@@ -111,10 +111,12 @@
		qcom,model = "msm8952-snd-card";
		reg = <0xc051000 0x4>,
		      <0xc051004 0x4>,
		      <0xc055000 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_lpaif_pri_pcm_pri_mode_muxsel",
			    "csr_gp_io_mux_quin_ctl";

		qcom,msm-ext-pa = "primary";
		qcom,msm-mclk-freq = <9600000>;
@@ -132,6 +134,7 @@
			"AMIC1", "MIC BIAS External",
			"AMIC2", "MIC BIAS External2",
			"AMIC3", "MIC BIAS External",
			"WSA_SPK OUT", "VDD_WSA_SWITCH",
			"SpkrMono WSA_IN", "WSA_SPK OUT";
		qcom,msm-gpios =
			"pri_i2s",
@@ -162,6 +165,7 @@
				"msm-voice-svc";
		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
				<&dai_mi2s5>, <&dai_mi2s6>,
				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
@@ -171,6 +175,7 @@
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
				"msm-dai-q6-mi2s.5", "msm-dai-q6-mi2s.6",
				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
@@ -183,6 +188,84 @@
				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
		asoc-codec = <&stub_codec>, <&pm8950_cajon_dig>;
		asoc-codec-names = "msm-stub-codec.1", "cajon_codec";
		asoc-wsa-codec-names = "wsa881x-i2c-codec.8-000f";
		asoc-wsa-codec-prefixes = "SpkrMono";

		msm-vdd-wsa-switch-supply = <&pm8950_l13>;
		qcom,msm-vdd-wsa-switch-voltage = <3075000>;
		qcom,msm-vdd-wsa-switch-current = <5000>;
	};
	i2c@7af8000 {
		wsa881x-i2c-codec@e {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0e>;
			qcom,msm-gpios = "wsa_clk",
					"wsa_reset",
					"wsa_vi";
			qcom,pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-0 = <&wsa_clk_off &wsa_reset_off &wsa_vi_off>;
			pinctrl-1 = <&wsa_clk_on &wsa_reset_off &wsa_vi_off>;
			pinctrl-2 = <&wsa_clk_off &wsa_reset_on &wsa_vi_off>;
			pinctrl-3 = <&wsa_clk_on &wsa_reset_on &wsa_vi_off>;
			pinctrl-4 = <&wsa_clk_off &wsa_reset_off &wsa_vi_on>;
			pinctrl-5 = <&wsa_clk_on &wsa_reset_off &wsa_vi_on>;
			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 {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x44>;
		};
		wsa881x-i2c-codec@f {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0f>;
			qcom,msm-gpios = "wsa_clk",
					"wsa_reset",
					"wsa_vi";
			qcom,pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-0 = <&wsa_clk_off &wsa_reset_off &wsa_vi_off>;
			pinctrl-1 = <&wsa_clk_on &wsa_reset_off &wsa_vi_off>;
			pinctrl-2 = <&wsa_clk_off &wsa_reset_on &wsa_vi_off>;
			pinctrl-3 = <&wsa_clk_on &wsa_reset_on &wsa_vi_off>;
			pinctrl-4 = <&wsa_clk_off &wsa_reset_off &wsa_vi_on>;
			pinctrl-5 = <&wsa_clk_on &wsa_reset_off &wsa_vi_on>;
			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 {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x45>;
		};
	};
};

+2 −1
Original line number Diff line number Diff line
@@ -13,10 +13,11 @@
&soc {
	qcom,iommu-domains {
		compatible = "qcom,iommu-domains";
		qcom,iommu-domain1 {
		lpass_q6_smmu: qcom,iommu-domain1 {
			label = "lpass_audio";
			qcom,iommu-contexts = <&adsp_io>;
			qcom,virtual-addr-pool = <0x10000000 0x0FFFFFFF>;
			#iommu-cells = <1>;
		};
		/*
		 * non-secure addr pool from 1500 MB to 3532 MB
+0 −6
Original line number Diff line number Diff line
@@ -38,12 +38,6 @@
			qcom,ion-heap-type = "DMA";
		};

		qcom,ion-heap@28 { /* AUDIO HEAP */
			reg = <28>;
			memory-region = <&audio_mem>;
			qcom,ion-heap-type = "DMA";
		};

		qcom,ion-heap@22 {
			reg = <22>;
			memory-region = <&adsp_mem>;
+86 −2
Original line number Diff line number Diff line
@@ -102,10 +102,12 @@
		qcom,model = "msm8952-snd-card-mtp";
		reg = <0xc051000 0x4>,
		      <0xc051004 0x4>,
		      <0xc055000 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_lpaif_pri_pcm_pri_mode_muxsel",
			    "csr_gp_io_mux_quin_ctl";

		qcom,msm-ext-pa = "primary";
		qcom,msm-mclk-freq = <9600000>;
@@ -123,6 +125,7 @@
			"AMIC1", "MIC BIAS External",
			"AMIC2", "MIC BIAS External2",
			"AMIC3", "MIC BIAS External",
			"WSA_SPK OUT", "VDD_WSA_SWITCH",
			"SpkrMono WSA_IN", "WSA_SPK OUT";
		qcom,msm-gpios =
			"pri_i2s",
@@ -153,6 +156,7 @@
				"msm-voice-svc";
		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
				<&dai_mi2s5>, <&dai_mi2s6>,
				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
@@ -162,6 +166,7 @@
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
				"msm-dai-q6-mi2s.5", "msm-dai-q6-mi2s.6",
				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
@@ -174,6 +179,85 @@
				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
		asoc-codec = <&stub_codec>, <&pm8950_cajon_dig>;
		asoc-codec-names = "msm-stub-codec.1", "cajon_codec";
		asoc-wsa-codec-names = "wsa881x-i2c-codec.8-000f";
		asoc-wsa-codec-prefixes = "SpkrMono";

		msm-vdd-wsa-switch-supply = <&pm8950_l13>;
		qcom,msm-vdd-wsa-switch-voltage = <3075000>;
		qcom,msm-vdd-wsa-switch-current = <5000>;
	};

	i2c@7af8000 {
		wsa881x-i2c-codec@e {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0e>;
			qcom,msm-gpios = "wsa_clk",
					"wsa_reset",
					"wsa_vi";
			qcom,pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-0 = <&wsa_clk_off &wsa_reset_off &wsa_vi_off>;
			pinctrl-1 = <&wsa_clk_on &wsa_reset_off &wsa_vi_off>;
			pinctrl-2 = <&wsa_clk_off &wsa_reset_on &wsa_vi_off>;
			pinctrl-3 = <&wsa_clk_on &wsa_reset_on &wsa_vi_off>;
			pinctrl-4 = <&wsa_clk_off &wsa_reset_off &wsa_vi_on>;
			pinctrl-5 = <&wsa_clk_on &wsa_reset_off &wsa_vi_on>;
			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 {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x44>;
		};
		wsa881x-i2c-codec@f {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x0f>;
			qcom,msm-gpios = "wsa_clk",
					"wsa_reset",
					"wsa_vi";
			qcom,pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-names = "all_off",
					"wsa_clk",
					"wsa_active",
					"wsa_clk_active",
					"wsa_vi",
					"wsa_clk_vi",
					"wsa_active_vi",
					"wsa_all";
			pinctrl-0 = <&wsa_clk_off &wsa_reset_off &wsa_vi_off>;
			pinctrl-1 = <&wsa_clk_on &wsa_reset_off &wsa_vi_off>;
			pinctrl-2 = <&wsa_clk_off &wsa_reset_on &wsa_vi_off>;
			pinctrl-3 = <&wsa_clk_on &wsa_reset_on &wsa_vi_off>;
			pinctrl-4 = <&wsa_clk_off &wsa_reset_off &wsa_vi_on>;
			pinctrl-5 = <&wsa_clk_on &wsa_reset_off &wsa_vi_on>;
			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 {
			compatible = "qcom,wsa881x-i2c-codec";
			reg = <0x45>;
		};
	};
};

+32 −4
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@
			cdc_pdm_lines_2_act: pdm_lines_2_on {
				mux {
					pins = "gpio70", "gpio71", "gpio72";
					function = "cdm_pdm0";
					function = "cdc_pdm0";
				};

				config {
@@ -91,7 +91,7 @@
			cdc_pdm_lines_2_sus: pdm_lines_2_off {
				mux {
					pins = "gpio70", "gpio71", "gpio72";
					function = "cdm_pdm0";
					function = "cdc_pdm0";
				};

				config {
@@ -809,7 +809,7 @@

		/* WSA Reset */
		wsa_reset {
			wsa_active: wsa_reset_on {
			wsa_reset_on: wsa_reset_on {
				mux {
					pins = "gpio68";
					function = "gpio";
@@ -822,7 +822,7 @@
				};
			};

			wsa_suspend: wsa_reset_off {
			wsa_reset_off: wsa_reset_off {
				mux {
					pins = "gpio68";
					function = "gpio";
@@ -866,6 +866,34 @@
			};
		};

		/* WSA VI sense */
		wsa-vi {
			wsa_vi_on: wsa_vi_on {
				mux {
					pins = "gpio94", "gpio95";
					function = "wsa_io";
				};

				config {
					pins = "gpio94", "gpio95";
					drive-strength = <8>; /* 8 MA */
					bias-disable; /* NO pull */
				};
			};

			wsa_vi_off: wsa_vi_off {
				mux {
					pins = "gpio94", "gpio95";
					function = "wsa_io";
				};

				config {
					pins = "gpio94", "gpio95";
					drive-strength = <2>; /* 2 MA */
					bias-pull-down;
				};
			};
		};
		/*sensors */
		cam_sensor_mclk0_default: cam_sensor_mclk0_default {
			cam_sensor_mclk0_default {
Loading