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

Commit 83219200 authored by Vidyakumar Athota's avatar Vidyakumar Athota
Browse files

ARM: dts: msm: Add audio overlay dtsi for SDM855



Add audio overlay dtsi and other audio related entries
for SDM855.

Change-Id: I87c0340d017fd0b4efe85f1e6416d15b197868a3
Signed-off-by: default avatarVidyakumar Athota <vathota@codeaurora.org>
parent be7a7aa6
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
/* Copyright (c) 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
 * 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.
 */

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

			wsa881x_0211: wsa881x@20170211 {
				compatible = "qcom,wsa881x";
				reg = <0x00 0x20170211>;
				qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>;
			};

			wsa881x_0212: wsa881x@20170212 {
				compatible = "qcom,wsa881x";
				reg = <0x00 0x20170212>;
				qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>;
			};

			wsa881x_0213: wsa881x@21170213 {
				compatible = "qcom,wsa881x";
				reg = <0x00 0x21170213>;
				qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>;
			};

			wsa881x_0214: wsa881x@21170214 {
				compatible = "qcom,wsa881x";
				reg = <0x00 0x21170214>;
				qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>;
			};
		};
	};
};
+158 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 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
 * 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 "sdm855-wcd.dtsi"
#include "msm-wsa881x.dtsi"
#include <dt-bindings/clock/qcom,audio-ext-clk.h>

&snd_9360 {
	qcom,audio-routing =
		"AIF4 VI", "MCLK",
		"MADINPUT", "MCLK",
		"AMIC3", "MIC BIAS2",
		"AMIC4", "MIC BIAS2",
		"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,pahu-ext-clk-freq = <19200000>;

	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";
};

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

	clock_audio: audio_ext_clk {
		status = "ok";
		compatible = "qcom,audio-ref-clk";
		qcom,codec-ext-clk-src = <2>;
		qcom,codec-lpass-ext-clk-freq = <19200000>;
		qcom,codec-lpass-clk-id = <1>;
	};

	wcd_rst_gpio: msm_cdc_pinctrl@64 {
		compatible = "qcom,msm-cdc-pinctrl";
		qcom,cdc-rst-n-gpio = <&tlmm 143 0>;
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_reset_active>;
		pinctrl-1 = <&cdc_reset_sleep>;
	};

	qocm,wcd-dsp-glink {
		compatible = "qcom,wcd-dsp-glink";
		qcom,wdsp-channels = "g_glink_ctrl",
				     "g_glink_persistent_data_nild",
				     "g_glink_persistent_data_ild",
				     "g_glink_audio_data";
	};

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

&slim_aud {
	wcd9360_cdc: pahu_codec {
		compatible = "qcom,pahu-slim-pgd";
		elemental-addr = [00 01 C0 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>;

		cdc-vdd-ldo-rxtx-supply = <&pm855_s5>;
		qcom,cdc-vdd-ldo-rxtx-voltage = <2040000 2040000>;
		qcom,cdc-vdd-ldo-rxtx-current = <30000>;

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

		cdc-vdd-px-supply = <&pm855_s4>;
		qcom,cdc-vdd-px-voltage = <1800000 1800000>;
		qcom,cdc-vdd-px-current = <15000>;

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

		cdc-vdd-pa-supply = <&pm855l_bob>;
		qcom,cdc-vdd-pa-voltage = <3300000 3300000>;
		qcom,cdc-vdd-pa-current = <230000>;

		qcom,cdc-static-supplies = "cdc-vdd-buck-sido",
					   "cdc-vdd-px",
					   "cdc-vdd-mic-bias",
					   "cdc-vdd-pa";
		qcom,cdc-on-demand-supplies = "cdc-vdd-ldo-rxtx";

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

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

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

	};
};
+63 −0
Original line number Diff line number Diff line
@@ -26,6 +26,69 @@
		qcom,clk-div = <192>;
		qcom,clk-mult = <10>;
	};

	snd_9360: sound-pahu {
		compatible = "qcom,sdm855-asoc-snd-pahu";
		qcom,model = "sdm855-pahu-snd-card";
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;

		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&compr>,
				<&pcm_noirq>;
		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-compr-dsp",
				"msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_hdmi>, <&dai_dp>,
				<&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_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>, <&sb_6_rx>,
				<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>,
				<&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-hdmi.8",  "msm-dai-q6-dp.24608",
				"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.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.16396", "msm-dai-q6-dev.16398",
				"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
				"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";
	};
};

&slim_aud {
+81 −0
Original line number Diff line number Diff line
/* Copyright (c) 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
 * 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.
 */

&slim_aud {
	pahu_codec {
		wcd: wcd_pinctrl {
			compatible = "qcom,wcd-pinctrl";
			qcom,num-gpios = <5>;
			gpio-controller;
			#gpio-cells = <2>;

			spkr_1_wcd_en_active: spkr_1_wcd_en_active {
				mux {
					pins = "gpio2";
				};

				config {
					pins = "gpio2";
					output-high;
				};
			};

			spkr_1_wcd_en_sleep: spkr_1_wcd_en_sleep {
				mux {
					pins = "gpio2";
				};

				config {
					pins = "gpio2";
					input-enable;
				};
			};

			spkr_2_wcd_en_active: spkr_2_sd_n_active {
				mux {
					pins = "gpio3";
				};

				config {
					pins = "gpio3";
					output-high;
				};
			};

			spkr_2_wcd_en_sleep: spkr_2_sd_n_sleep {
				mux {
					pins = "gpio3";
				};

				config {
					pins = "gpio3";
					input-enable;
				};
			};
		};

		wsa_spkr_wcd_sd1: msm_cdc_pinctrll {
		      compatible = "qcom,msm-cdc-pinctrl";
		      pinctrl-names = "aud_active", "aud_sleep";
		      pinctrl-0 = <&spkr_1_wcd_en_active>;
		      pinctrl-1 = <&spkr_1_wcd_en_sleep>;
		};

		wsa_spkr_wcd_sd2: msm_cdc_pinctrlr {
		      compatible = "qcom,msm-cdc-pinctrl";
		      pinctrl-names = "aud_active", "aud_sleep";
		      pinctrl-0 = <&spkr_2_wcd_en_active>;
		      pinctrl-1 = <&spkr_2_wcd_en_sleep>;
		};

	};
};