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

Commit 75f5ed27 authored by Rohit kumar's avatar Rohit kumar
Browse files

ARM: dts: msm: Add support of tasha on sdm670



Add device nodes and pinctrl for tasha codec
on sdm670.

Change-Id: I7dd1d07db9a16db5a3026dc5f3d01607d532fe74
Signed-off-by: default avatarRohit kumar <rohitkr@codeaurora.org>
parent 86c4acfa
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2018, 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
@@ -376,7 +376,7 @@
			#clock-cells = <1>;
			qcom,cxo-freq = <19200000>;
			qcom,clkdiv-id = <1>;
			qcom,clkdiv-init-freq = <19200000>;
			qcom,clkdiv-init-freq = <9600000>;
			status = "disabled";
		};
	};
+104 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2018, 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
@@ -12,6 +12,7 @@
 */
#include "sdm670-wcd.dtsi"
#include "sdm670-wsa881x.dtsi"
#include "sdm670-lpi.dtsi"
#include <dt-bindings/clock/qcom,audio-ext-clk.h>

&tavil_snd {
@@ -59,6 +60,49 @@
		"SpkrLeft", "SpkrRight";
};

&tasha_snd {
	qcom,msm-mi2s-master = <1>, <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 = <0>;
	qcom,msm-mbhc-gnd-swh = <0>;
	qcom,msm-mclk-freq = <9600000>;
	asoc-codec = <&stub_codec>;
	asoc-codec-names = "msm-stub-codec.1";
	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
		<&wsa881x_213>, <&wsa881x_214>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
		"SpkrLeft", "SpkrRight";
};

&int_codec {
	qcom,audio-routing =
		"RX_BIAS", "INT_MCLK0",
@@ -222,6 +266,31 @@
		pinctrl-0 = <&wcd_intr_default>;
	};

	clock_audio_native: audio_ext_clk_native {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
		#clock-cells = <1>;
		qcom,lpass-mclk-id = <0x116>;
		qcom,codec-mclk-clk-freq = <11289600>;
		qcom,audio-ref-clk-gpio = <&lpi_tlmm 19 0>;
		pinctrl-names = "sleep", "active";
		pinctrl-0 = <&lpi_mclk0_sleep>;
		pinctrl-1 = <&lpi_mclk0_active>;
	};

	clock_audio: audio_ext_clk {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
		pinctrl-names = "active", "sleep";
		pinctrl-0 = <&tasha_mclk_default>;
		pinctrl-1 = <&tasha_mclk_default>;
		qcom,audio-ref-clk-gpio = <&pm660_gpios 3 0>;
		clock-names = "osr_clk";
		clocks = <&pm660_div_clk>;
		qcom,node_has_rpm_clock;
		#clock-cells = <1>;
	};

	clock_audio_lnbb: audio_ext_clk_lnbb {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
@@ -254,6 +323,40 @@
};

&slim_aud {
	wcd9335: tasha_codec {
		status = "disabled";
		compatible = "qcom,tasha-slim-pgd";
		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,wcd-rst-gpio-node = <&wcd_rst_gpio>;

		clock-names = "wcd_clk", "wcd_native_clk";
		clocks = <&clock_audio AUDIO_PMI_CLK>,
			 <&clock_audio_native AUDIO_LPASS_MCLK>;

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

	wcd934x_cdc: tavil_codec {
		status = "disabled";
		compatible = "qcom,tavil-slim-pgd";
+67 −5
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2018, 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
@@ -12,10 +12,6 @@
 */

#include "msm-audio-lpass.dtsi"
#include "sdm670-wcd.dtsi"
#include "sdm670-wsa881x.dtsi"
#include "sdm670-lpi.dtsi"
#include <dt-bindings/clock/qcom,audio-ext-clk.h>

&msm_audio_ion {
	iommus = <&apps_smmu 0x1801 0x0>;
@@ -99,6 +95,72 @@
			"msm-dai-q6-tdm.36928", "msm-dai-q6-tdm.36929";
	};

	tasha_snd: sound-tasha {
		status = "disabled";
		compatible = "qcom,sdm670-asoc-snd-tasha";
		qcom,model = "sdm670-tasha-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
			<&loopback>, <&compress>, <&hostless>,
			<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
			<&pcm_noirq>, <&cpe3>;
		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-compr-dsp", "msm-pcm-dsp-noirq",
			"msm-cpe-lsm.3";
		asoc-cpu = <&dai_mi2s0>, <&dai_mi2s1>,
			<&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s4>,
			<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
			<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
			<&dai_quin_auxpcm>,
			<&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_rx>, <&sb_5_tx>,
			<&sb_6_rx>, <&sb_7_rx>, <&sb_7_tx>,
			<&sb_8_rx>, <&sb_8_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>,
			<&usb_audio_rx>, <&usb_audio_tx>,
			<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
			<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
			<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
			<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>,
			<&dai_quin_tdm_rx_0>, <&dai_quin_tdm_tx_0>;
		asoc-cpu-names = "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
			"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
			"msm-dai-q6-mi2s.4",
			"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
			"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
			"msm-dai-q6-auxpcm.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.16394", "msm-dai-q6-dev.16395",
			"msm-dai-q6-dev.16396",
			"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
			"msm-dai-q6-dev.16400", "msm-dai-q6-dev.16401",
			"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.28672", "msm-dai-q6-dev.28673",
			"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
			"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",
			"msm-dai-q6-tdm.36928", "msm-dai-q6-tdm.36929";
	};

	int_codec: sound {
		status = "okay";
		compatible = "qcom,sdm670-asoc-snd";
+29 −1
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2018, 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
@@ -18,6 +18,34 @@
		gpio-controller;
		#gpio-cells = <2>;

		lpi_mclk0_active: lpi_mclk0_active {
			mux {
				pins = "gpio19";
				function = "func1";
			};

			config {
				pins = "gpio19";
				drive-strength = <8>;
				bias-disable;
				output-low;
			};
		};

		lpi_mclk0_sleep: lpi_mclk0_sleep {
			mux {
				pins = "gpio19";
				function = "func1";
			};

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

		cdc_pdm_clk_active: cdc_pdm_clk_active {
			mux {
				pins = "gpio18";
+75 −1
Original line number Diff line number Diff line
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2017-2018, 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
@@ -1505,6 +1505,67 @@
			};
		};

		/* Tasha WSA speaker reset pins */
		tasha_spkr_1_sd_n {
			tasha_spkr_1_sd_n_sleep: tasha_spkr_1_sd_n_sleep {
				mux {
					pins = "gpio66";
					function = "gpio";
				};

				config {
					pins = "gpio66";
					drive-strength = <2>;   /* 2 mA */
					bias-pull-down;
					input-enable;
				};
			};

			tasha_spkr_1_sd_n_active: tasha_spkr_1_sd_n_active {
				mux {
					pins = "gpio66";
					function = "gpio";
				};

				config {
					pins = "gpio66";
					drive-strength = <16>;   /* 16 mA */
					bias-disable;
					output-high;
				};
			};
		};

		tasha_spkr_2_sd_n {
			tasha_spkr_2_sd_n_sleep: tasha_spkr_2_sd_n_sleep {
				mux {
					pins = "gpio65";
					function = "gpio";
				};

				config {
					pins = "gpio65";
					drive-strength = <2>;   /* 2 mA */
					bias-pull-down;
					input-enable;
				};
			};

			tasha_spkr_2_sd_n_active: tasha_spkr_2_sd_n_active {
				mux {
					pins = "gpio65";
					function = "gpio";
				};

				config {
					pins = "gpio65";
					drive-strength = <16>;   /* 16 mA */
					bias-disable;
					output-high;
				};
			};
		};

		wcd_buck_vsel {
			wcd_buck_vsel_default: wcd_buck_vsel_default{
				mux {
@@ -1995,6 +2056,19 @@
	};
};

&pm660_gpios {
	tasha_mclk {
		tasha_mclk_default: tasha_mclk_default{
			pins = "gpio3";
			function = "func1";
			qcom,drive-strength = <2>;
			power-source = <0>;
			bias-disable;
			output-low;
		};
	};
};

&pm660l_gpios {
	camera_rear_dvdd_en {
		camera_rear_dvdd_en_default: camera_rear_dvdd_en_default {
Loading