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

Commit cb1d7db3 authored by Rohit Kumar's avatar Rohit Kumar Committed by Gerrit - the friendly Code Review server
Browse files

ARM: dts: msm: Add overlay support for audio on sdm845 interposer sdm670



Reorganize device tree to support overlay on sdm845 interposer
sdm670. Move non-SoC specific device tree nodes to overlay
device tree file.

Change-Id: I7a367cfb02727af6faceed0672b1365c0588062c
Signed-off-by: default avatarRohit Kumar <rohitkr@codeaurora.org>
parent c70d827b
Loading
Loading
Loading
Loading
+375 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
#include "sdm670-wcd.dtsi"
#include "sdm670-wsa881x.dtsi"
#include <dt-bindings/clock/qcom,audio-ext-clk.h>

&tavil_snd {
	qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
	qcom,audio-routing =
		"AIF4 VI", "MCLK",
		"RX_BIAS", "MCLK",
		"MADINPUT", "MCLK",
		"hifi amp", "LINEOUT1",
		"hifi amp", "LINEOUT2",
		"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",
		"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-mbhc-hphl-swh = <1>;
	qcom,msm-mbhc-gnd-swh = <1>;
	qcom,hph-en0-gpio = <&tavil_hph_en0>;
	qcom,hph-en1-gpio = <&tavil_hph_en1>;
	qcom,msm-mclk-freq = <9600000>;
	qcom,usbc-analog-en1_gpio = <&wcd_usbc_analog_en1_gpio>;
	asoc-codec = <&stub_codec>;
	asoc-codec-names = "msm-stub-codec.1";
	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
		<&wsa881x_0213>, <&wsa881x_0214>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
		"SpkrLeft", "SpkrRight";
};

&int_codec {
	qcom,audio-routing =
		"RX_BIAS", "INT_MCLK0",
		"SPK_RX_BIAS", "INT_MCLK0",
		"INT_LDO_H", "INT_MCLK0",
		"MIC BIAS External", "Handset Mic",
		"MIC BIAS External2", "Headset Mic",
		"MIC BIAS External", "Secondary Mic",
		"AMIC1", "MIC BIAS External",
		"AMIC2", "MIC BIAS External2",
		"AMIC3", "MIC BIAS External",
		"DMIC1", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic1",
		"DMIC2", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic2",
		"DMIC3", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic3",
		"DMIC4", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic4",
		"SpkrLeft IN", "SPK1 OUT",
		"SpkrRight IN", "SPK2 OUT",
		"PDM_IN_RX1", "PDM_OUT_RX1",
		"PDM_IN_RX2", "PDM_OUT_RX2",
		"PDM_IN_RX3", "PDM_OUT_RX3",
		"ADC1_IN", "ADC1_OUT",
		"ADC2_IN", "ADC2_OUT",
		"ADC3_IN", "ADC3_OUT";

	qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
	qcom,msm-mclk-freq = <9600000>;
	qcom,msm-mbhc-hphl-swh = <1>;
	qcom,msm-mbhc-gnd-swh = <1>;
	qcom,msm-micbias2-ext-cap;
	qcom,msm-hs-micbias-type = "external";
	qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
	qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
	qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;

	asoc-codec = <&stub_codec>, <&msm_digital_codec>,
		     <&pmic_analog_codec>, <&msm_sdw_codec>;
	asoc-codec-names = "msm-stub-codec.1", "msm-dig-codec",
			   "analog-codec", "msm_sdw_codec";

	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_211_en>, <&wsa881x_212_en>,
			<&wsa881x_213_en>, <&wsa881x_214_en>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
				  "SpkrLeft", "SpkrRight";
};

&soc {
	wcd_usbc_analog_en1_gpio: msm_cdc_pinctrl_usbc_audio_en1 {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&wcd_usbc_analog_en1_active>;
		pinctrl-1 = <&wcd_usbc_analog_en1_idle>;
	};

	cdc_pdm_gpios: cdc_pdm_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_pdm_clk_active &cdc_pdm_sync_active
			     &cdc_pdm_rx0_active &cdc_pdm_rx1_2_active
			     &cdc_pdm_2_gpios_active>;
		pinctrl-1 = <&cdc_pdm_clk_sleep &cdc_pdm_sync_sleep
			     &cdc_pdm_rx0_sleep &cdc_pdm_rx1_2_sleep
			     &cdc_pdm_2_gpios_sleep>;
		qcom,lpi-gpios;
	};

	cdc_comp_gpios: cdc_comp_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_rx0_comp_active &cdc_rx1_comp_active>;
		pinctrl-1 = <&cdc_rx0_comp_sleep &cdc_rx1_comp_sleep>;
		qcom,lpi-gpios;
	};

	cdc_dmic_gpios: cdc_dmic_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic12_gpios_active
			     &cdc_dmic34_gpios_active>;
		pinctrl-1 = <&cdc_dmic12_gpios_sleep
			     &cdc_dmic34_gpios_sleep>;
		qcom,lpi-gpios;
	};

	cdc_sdw_gpios: sdw_clk_data_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&sdw_clk_active &sdw_data_active>;
		pinctrl-1 = <&sdw_clk_sleep &sdw_data_sleep>;
	};

	wsa_spkr_en1: wsa_spkr_en1_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&spkr_1_sd_n_active>;
		pinctrl-1 = <&spkr_1_sd_n_sleep>;
	};

	wsa_spkr_en2: wsa_spkr_en2_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&spkr_2_sd_n_active>;
		pinctrl-1 = <&spkr_2_sd_n_sleep>;
	};

	msm_sdw_codec: msm-sdw-codec@62ec1000 {
		status = "okay";
		compatible = "qcom,msm-sdw-codec";
		reg = <0x62ec1000 0x0>;
		interrupts = <0 161 0>;
		interrupt-names = "swr_master_irq";
		qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;

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

			wsa881x_211_en: wsa881x_en@20170211 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x20170211>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
			};

			wsa881x_212_en: wsa881x_en@20170212 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x20170212>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
			};

			wsa881x_213_en: wsa881x_en@21170213 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x21170213>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
			};

			wsa881x_214_en: wsa881x_en@21170214 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x21170214>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
			};
		};
	};

	wcd9xxx_intc: wcd9xxx-irq {
		status = "disabled";
		compatible = "qcom,wcd9xxx-irq";
		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&tlmm>;
		qcom,gpio-connect = <&tlmm 80 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&wcd_intr_default>;
	};

	clock_audio_lnbb: audio_ext_clk_lnbb {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
		clock-names = "osr_clk";
		clocks = <&clock_rpmh RPMH_LN_BB_CLK2>;
		qcom,node_has_rpm_clock;
		#clock-cells = <1>;
	};

	wcd_rst_gpio: msm_cdc_pinctrl@64 {
		status = "disabled";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&lpi_cdc_reset_active>;
		pinctrl-1 = <&lpi_cdc_reset_sleep>;
		qcom,lpi-gpios;
	};

	wdsp_mgr: qcom,wcd-dsp-mgr {
		compatible = "qcom,wcd-dsp-mgr";
		qcom,wdsp-components = <&wcd934x_cdc 0>,
				       <&wcd_spi_0 1>,
				       <&glink_spi_xprt_wdsp 2>;
					qcom,img-filename = "cpe_9340";
	};

	wdsp_glink: qcom,wcd-dsp-glink {
		compatible = "qcom,wcd-dsp-glink";
	};
};

&slim_aud {
	wcd934x_cdc: tavil_codec {
		status = "disabled";
		compatible = "qcom,tavil-slim-pgd";
		elemental-addr = [00 01 50 02 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 31>;

		qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;

		clock-names = "wcd_clk";
		clocks = <&clock_audio_lnbb AUDIO_PMIC_LNBB_CLK>;

		cdc-vdd-mic-bias-supply = <&pm660l_bob>;
		qcom,cdc-vdd-mic-bias-voltage = <3312000 3312000>;
		qcom,cdc-vdd-mic-bias-current = <30400>;

		qcom,cdc-static-supplies = "cdc-vdd-mic-bias";

		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 = "tavil-slim-ifd";
		qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
		qcom,cdc-dmic-sample-rate = <4800000>;
		qcom,cdc-mad-dmic-rate = <600000>;

		qcom,wdsp-cmpnt-dev-name = "tavil_codec";

		wcd_spi_0: wcd_spi {
			compatible = "qcom,wcd-spi-v2";
			qcom,master-bus-num = <8>;
			qcom,chip-select = <0>;
			qcom,max-frequency = <24000000>;
			qcom,mem-base-addr = <0x100000>;
		};
	};
};

&pm660l_3 {
	pmic_analog_codec: analog-codec@f000 {
		status = "okay";
		compatible = "qcom,pmic-analog-codec";
		reg = <0xf000 0x200>;
		#address-cells = <2>;
		#size-cells = <0>;
		interrupt-parent = <&spmi_bus>;
		interrupts = <0x3 0xf0 0x0 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x1 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x2 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x3 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x4 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x5 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x6 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x7 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x0 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x1 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x2 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x3 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x4 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x5 IRQ_TYPE_NONE>;
		interrupt-names = "spk_cnp_int",
				   "spk_clip_int",
				   "spk_ocp_int",
				   "ins_rem_det1",
				   "but_rel_det",
				   "but_press_det",
				   "ins_rem_det",
				   "mbhc_int",
				   "ear_ocp_int",
				   "hphr_ocp_int",
				   "hphl_ocp_det",
				   "ear_cnp_int",
				   "hphr_cnp_int",
				   "hphl_cnp_int";

		cdc-vdda-cp-supply = <&pm660_s4>;
		qcom,cdc-vdda-cp-voltage = <1900000 2050000>;
		qcom,cdc-vdda-cp-current = <50000>;

		cdc-vdd-pa-supply = <&pm660_s4>;
		qcom,cdc-vdd-pa-voltage = <2040000 2040000>;
		qcom,cdc-vdd-pa-current = <260000>;

		cdc-vdd-mic-bias-supply = <&pm660l_l7>;
		qcom,cdc-vdd-mic-bias-voltage = <3088000 3088000>;
		qcom,cdc-vdd-mic-bias-current = <5000>;

		qcom,cdc-mclk-clk-rate = <9600000>;

		qcom,cdc-static-supplies = "cdc-vdda-cp",
					   "cdc-vdd-pa";

		qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";

		/*
		 * Not marking address @ as driver searches this child
		 * with name msm-dig-codec
		 */
		msm_digital_codec: msm-dig-codec {
			compatible = "qcom,msm-digital-codec";
			reg = <0x62ec0000 0x0>;
		};
	};
};

&pm660_gpios {
	gpio@c200 {
		status = "ok";
		qcom,mode = <1>;
		qcom,pull = <4>;
		qcom,vin-sel = <0>;
		qcom,src-sel = <2>;
		qcom,master-en = <1>;
		qcom,out-strength = <2>;
	};
};
+1 −351
Original line number Diff line number Diff line
@@ -39,42 +39,6 @@
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
		qcom,audio-routing =
			"AIF4 VI", "MCLK",
			"RX_BIAS", "MCLK",
			"MADINPUT", "MCLK",
			"hifi amp", "LINEOUT1",
			"hifi amp", "LINEOUT2",
			"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",
			"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-mbhc-hphl-swh = <1>;
		qcom,msm-mbhc-gnd-swh = <1>;
		qcom,hph-en0-gpio = <&tavil_hph_en0>;
		qcom,hph-en1-gpio = <&tavil_hph_en1>;
		qcom,msm-mclk-freq = <9600000>;
		qcom,usbc-analog-en1_gpio = <&wcd_usbc_analog_en1_gpio>;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
			<&loopback>, <&compress>, <&hostless>,
			<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
@@ -126,13 +90,6 @@
			"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
			"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
			"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
		qcom,wsa-max-devs = <2>;
		qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
				<&wsa881x_0213>, <&wsa881x_0214>;
		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
					"SpkrLeft", "SpkrRight";
	};

	int_codec: sound {
@@ -142,42 +99,6 @@ int_codec: sound {
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
		qcom,msm-mclk-freq = <9600000>;
		qcom,msm-mbhc-hphl-swh = <1>;
		qcom,msm-mbhc-gnd-swh = <1>;
		qcom,msm-micbias2-ext-cap;
		qcom,msm-hs-micbias-type = "external";
		qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
		qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
		qcom,audio-routing =
			"RX_BIAS", "INT_MCLK0",
			"SPK_RX_BIAS", "INT_MCLK0",
			"INT_LDO_H", "INT_MCLK0",
			"MIC BIAS External", "Handset Mic",
			"MIC BIAS External2", "Headset Mic",
			"MIC BIAS External", "Secondary Mic",
			"AMIC1", "MIC BIAS External",
			"AMIC2", "MIC BIAS External2",
			"AMIC3", "MIC BIAS External",
			"DMIC1", "MIC BIAS External",
			"MIC BIAS External", "Digital Mic1",
			"DMIC2", "MIC BIAS External",
			"MIC BIAS External", "Digital Mic2",
			"DMIC3", "MIC BIAS External",
			"MIC BIAS External", "Digital Mic3",
			"DMIC4", "MIC BIAS External",
			"MIC BIAS External", "Digital Mic4",
			"SpkrLeft IN", "SPK1 OUT",
			"SpkrRight IN", "SPK2 OUT",
			"PDM_IN_RX1", "PDM_OUT_RX1",
			"PDM_IN_RX2", "PDM_OUT_RX2",
			"PDM_IN_RX3", "PDM_OUT_RX3",
			"ADC1_IN", "ADC1_OUT",
			"ADC2_IN", "ADC2_OUT",
			"ADC3_IN", "ADC3_OUT";

		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
			<&loopback>, <&compress>, <&hostless>,
			<&afe>, <&lsm>, <&routing>, <&compr>,
@@ -224,135 +145,6 @@ int_codec: sound {
			"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
			"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
			"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
		asoc-codec = <&stub_codec>, <&msm_digital_codec>,
				<&pmic_analog_codec>, <&msm_sdw_codec>;
		asoc-codec-names = "msm-stub-codec.1", "msm-dig-codec",
				"analog-codec", "msm_sdw_codec";

		qcom,wsa-max-devs = <2>;
		qcom,wsa-devs = <&wsa881x_211_en>, <&wsa881x_212_en>,
				<&wsa881x_213_en>, <&wsa881x_214_en>;
		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
					"SpkrLeft", "SpkrRight";
	};

	cdc_pdm_gpios: cdc_pdm_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_pdm_clk_active &cdc_pdm_sync_active
			     &cdc_pdm_rx0_active &cdc_pdm_rx1_2_active
			     &cdc_pdm_2_gpios_active>;
		pinctrl-1 = <&cdc_pdm_clk_sleep &cdc_pdm_sync_sleep
			     &cdc_pdm_rx0_sleep &cdc_pdm_rx1_2_sleep
			     &cdc_pdm_2_gpios_sleep>;
		qcom,lpi-gpios;
	};

	cdc_comp_gpios: cdc_comp_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_rx0_comp_active &cdc_rx1_comp_active>;
		pinctrl-1 = <&cdc_rx0_comp_sleep &cdc_rx1_comp_sleep>;
		qcom,lpi-gpios;
	};

	cdc_dmic_gpios: cdc_dmic_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic12_gpios_active
				&cdc_dmic34_gpios_active>;
		pinctrl-1 = <&cdc_dmic12_gpios_sleep
				&cdc_dmic34_gpios_sleep>;
		qcom,lpi-gpios;
	};

	cdc_sdw_gpios: sdw_clk_data_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&sdw_clk_active &sdw_data_active>;
		pinctrl-1 = <&sdw_clk_sleep &sdw_data_sleep>;
	};

	wsa_spkr_en1: wsa_spkr_en1_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&spkr_1_sd_n_active>;
		pinctrl-1 = <&spkr_1_sd_n_sleep>;
	};

	wsa_spkr_en2: wsa_spkr_en2_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&spkr_2_sd_n_active>;
		pinctrl-1 = <&spkr_2_sd_n_sleep>;
	};

	msm_sdw_codec: msm-sdw-codec@62ec1000 {
		status = "okay";
		compatible = "qcom,msm-sdw-codec";
		reg = <0x62ec1000 0x0>;
		interrupts = <0 161 0>;
		interrupt-names = "swr_master_irq";
		qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;

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

			wsa881x_211_en: wsa881x_en@20170211 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x20170211>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
			};

			wsa881x_212_en: wsa881x_en@20170212 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x20170212>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
			};

			wsa881x_213_en: wsa881x_en@21170213 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x21170213>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
			};

			wsa881x_214_en: wsa881x_en@21170214 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x21170214>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
			};
		};
	};

	wcd9xxx_intc: wcd9xxx-irq {
		status = "disabled";
		compatible = "qcom,wcd9xxx-irq";
		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&tlmm>;
		qcom,gpio-connect = <&tlmm 80 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&wcd_intr_default>;
	};

	clock_audio_lnbb: audio_ext_clk_lnbb {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
		clock-names = "osr_clk";
		clocks = <&clock_rpmh RPMH_LN_BB_CLK2>;
		qcom,node_has_rpm_clock;
		#clock-cells = <1>;
	};

	wcd_rst_gpio: msm_cdc_pinctrl@64 {
		status = "disabled";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&lpi_cdc_reset_active>;
		pinctrl-1 = <&lpi_cdc_reset_sleep>;
		qcom,lpi-gpios;
	};

	cpe: qcom,msm-cpe-lsm {
@@ -363,18 +155,6 @@ int_codec: sound {
		compatible = "qcom,msm-cpe-lsm";
		qcom,msm-cpe-lsm-id = <3>;
	};

	wdsp_mgr: qcom,wcd-dsp-mgr {
		compatible = "qcom,wcd-dsp-mgr";
		qcom,wdsp-components = <&wcd934x_cdc 0>,
				       <&wcd_spi_0 1>,
				       <&glink_spi_xprt_wdsp 2>;
		qcom,img-filename = "cpe_9340";
	};

	wdsp_glink: qcom,wcd-dsp-glink {
		compatible = "qcom,wcd-dsp-glink";
	};
};

&slim_aud {
@@ -384,56 +164,6 @@ int_codec: sound {
		compatible = "qcom,msm-dai-slim";
		elemental-addr = [ff ff ff fe 17 02];
	};

	wcd934x_cdc: tavil_codec {
		status = "disabled";
		compatible = "qcom,tavil-slim-pgd";
		elemental-addr = [00 01 50 02 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 31>;

		qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;

		clock-names = "wcd_clk";
		clocks = <&clock_audio_lnbb AUDIO_PMIC_LNBB_CLK>;

		cdc-vdd-mic-bias-supply = <&pm660l_bob>;
		qcom,cdc-vdd-mic-bias-voltage = <3300000 3300000>;
		qcom,cdc-vdd-mic-bias-current = <30400>;

		qcom,cdc-static-supplies = "cdc-vdd-mic-bias";

		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 = "tavil-slim-ifd";
		qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
		qcom,cdc-dmic-sample-rate = <4800000>;
		qcom,cdc-mad-dmic-rate = <600000>;

		qcom,wdsp-cmpnt-dev-name = "tavil_codec";

		wcd_spi_0: wcd_spi {
			compatible = "qcom,wcd-spi-v2";
			qcom,master-bus-num = <8>;
			qcom,chip-select = <0>;
			qcom,max-frequency = <24000000>;
			qcom,mem-base-addr = <0x100000>;
		};

		wcd_usbc_analog_en1_gpio: msm_cdc_pinctrl_usbc_audio_en1 {
			compatible = "qcom,msm-cdc-pinctrl";
			pinctrl-names = "aud_active", "aud_sleep";
			pinctrl-0 = <&wcd_usbc_analog_en1_active>;
			pinctrl-1 = <&wcd_usbc_analog_en1_idle>;
		};
	};
};

&msm_dai_mi2s {
@@ -486,83 +216,3 @@ int_codec: sound {
		qcom,msm-mi2s-tx-lines = <3>;
	};
};

&pm660l_3 {
	pmic_analog_codec: analog-codec@f000 {
		status = "okay";
		compatible = "qcom,pmic-analog-codec";
		reg = <0xf000 0x200>;
		#address-cells = <2>;
		#size-cells = <0>;
		interrupt-parent = <&spmi_bus>;
		interrupts = <0x3 0xf0 0x0 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x1 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x2 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x3 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x4 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x5 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x6 IRQ_TYPE_NONE>,
				<0x3 0xf0 0x7 IRQ_TYPE_NONE>,
				<0x3 0xf1 0x0 IRQ_TYPE_NONE>,
				<0x3 0xf1 0x1 IRQ_TYPE_NONE>,
				<0x3 0xf1 0x2 IRQ_TYPE_NONE>,
				<0x3 0xf1 0x3 IRQ_TYPE_NONE>,
				<0x3 0xf1 0x4 IRQ_TYPE_NONE>,
				<0x3 0xf1 0x5 IRQ_TYPE_NONE>;
		interrupt-names = "spk_cnp_int",
				  "spk_clip_int",
				  "spk_ocp_int",
				  "ins_rem_det1",
				  "but_rel_det",
				  "but_press_det",
				  "ins_rem_det",
				  "mbhc_int",
				  "ear_ocp_int",
				  "hphr_ocp_int",
				  "hphl_ocp_det",
				  "ear_cnp_int",
				  "hphr_cnp_int",
				  "hphl_cnp_int";


		cdc-vdda-cp-supply = <&pm660_s4>;
		qcom,cdc-vdda-cp-voltage = <1900000 2050000>;
		qcom,cdc-vdda-cp-current = <50000>;

		cdc-vdd-pa-supply = <&pm660_s4>;
		qcom,cdc-vdd-pa-voltage = <2040000 2040000>;
		qcom,cdc-vdd-pa-current = <260000>;

		cdc-vdd-mic-bias-supply = <&pm660l_l7>;
		qcom,cdc-vdd-mic-bias-voltage = <3088000 3088000>;
		qcom,cdc-vdd-mic-bias-current = <5000>;

		qcom,cdc-mclk-clk-rate = <9600000>;

		qcom,cdc-static-supplies = "cdc-vdda-cp",
					   "cdc-vdd-pa";

		qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";

		/*
		 * Not marking address @ as driver searches this child
		 * with name msm-dig-codec
		 */
		msm_digital_codec: msm-dig-codec {
			compatible = "qcom,msm-digital-codec";
			reg = <0x62ec0000 0x0>;
		};
	};
};

&pm660_gpios {
	gpio@c200 {
		status = "ok";
		qcom,mode = <1>;
		qcom,pull = <4>;
		qcom,vin-sel = <0>;
		qcom,src-sel = <2>;
		qcom,master-en = <1>;
		qcom,out-strength = <2>;
	};
};
+53 −0
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
#include "sdm670-audio-overlay.dtsi"

&pm660l_3 {
	/delete-node/analog-codec;
};

&soc {
	/delete-node/msm-sdw-codec@62ec1000;
	/delete-node/cdc_pdm_pinctrl;
	/delete-node/wsa_spkr_en1_pinctrl;
	/delete-node/wsa_spkr_en2_pinctrl;
	/delete-node/sdw_clk_data_pinctrl;
};

&qupv3_se8_spi {
	status = "okay";
};

&wcd9xxx_intc {
	status = "okay";
	qcom,gpio-connect = <&tlmm 54 0>;
};

&wdsp_mgr {
	status = "okay";
};

&wdsp_glink {
	status = "okay";
};

&wcd934x_cdc {
	status = "okay";
};

&clock_audio_lnbb {
	status = "okay";
};

&wcd_rst_gpio {
	status = "okay";
};
+1 −49
Original line number Diff line number Diff line
@@ -10,44 +10,17 @@
 * GNU General Public License for more details.
 */

#include "sdm670-audio.dtsi"

&msm_audio_ion {
	iommus = <&apps_smmu 0x1821 0x0>;
	qcom,smmu-sid-mask = /bits/ 64 <0xf>;
};

&qupv3_se8_spi {
	status = "okay";
};

&pm660l_3 {
	/delete-node/analog-codec;
};

&soc {
	/delete-node/msm-sdw-codec@62ec1000;
	/delete-node/sound;
	/delete-node/cdc_pdm_pinctrl;
	/delete-node/wsa_spkr_en1_pinctrl;
	/delete-node/wsa_spkr_en2_pinctrl;
	/delete-node/sdw_clk_data_pinctrl;
};

&msm_audio_ion {
	iommus = <&apps_smmu 0x1821 0x0>;
};

&wcd9xxx_intc {
	status = "okay";
	qcom,gpio-connect = <&tlmm 54 0>;
};

&wdsp_mgr {
	status = "okay";
};

&wdsp_glink {
&tavil_snd {
	status = "okay";
};

@@ -58,24 +31,3 @@
&dai_slim {
	status = "okay";
};

&wcd934x_cdc {
	status = "okay";
};

&clock_audio_lnbb {
	status = "okay";
};

&wcd_rst_gpio {
	status = "okay";
};

&wcd9xxx_intc {
	status = "okay";
};

&tavil_snd {
	status = "okay";
};
+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@

#include "sdm845-sde-display.dtsi"
#include "sdm845-interposer-sdm670-cdp.dtsi"

#include "sdm845-interposer-sdm670-audio-overlay.dtsi"
/ {
	model = "Qualcomm Technologies, Inc. SDM845 v1 Interposer SDM670 CDP";
	compatible = "qcom,sdm845-cdp", "qcom,sdm845", "qcom,cdp";
Loading