2 * Copyright (c) 2016-2017, 2019 The Linux Foundation. All rights reserved.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #include "msm8998-wsa881x.dtsi"
17 qcom,smmu-version = <2>;
18 iommus = <&lpass_q6_smmu 1>;
27 compatible = "qcom,msm-audio-apr";
29 compatible = "qcom,msm-audio-apr-dummy";
33 qcom,avtimer@170f7000 {
34 compatible = "qcom,avtimer";
35 reg = <0x170f700c 0x4>,
37 reg-names = "avtimer_lsb_addr", "avtimer_msb_addr";
41 snd_9335: sound-9335 {
42 compatible = "qcom,msm8998-asoc-snd-tasha";
43 qcom,model = "msm8998-tasha-snd-card";
44 qcom,ext-disp-audio-rx;
47 qcom,auxpcm-audio-intf;
48 qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
50 reg = <0x1711a000 0x4>,
54 reg-names = "lpaif_pri_mode_muxsel",
55 "lpaif_sec_mode_muxsel",
56 "lpaif_tert_mode_muxsel",
57 "lpaif_quat_mode_muxsel";
63 "hifi amp", "LINEOUT1",
64 "hifi amp", "LINEOUT2",
66 "MIC BIAS2", "Headset Mic",
68 "MIC BIAS2", "ANCRight Headset Mic",
70 "MIC BIAS2", "ANCLeft Headset Mic",
72 "MIC BIAS3", "Handset Mic",
74 "MIC BIAS4", "Analog Mic6",
76 "MIC BIAS1", "Digital Mic0",
78 "MIC BIAS1", "Digital Mic1",
80 "MIC BIAS3", "Digital Mic2",
82 "MIC BIAS3", "Digital Mic3",
84 "MIC BIAS4", "Digital Mic4",
86 "MIC BIAS4", "Digital Mic5",
87 "SpkrLeft IN", "SPK1 OUT",
88 "SpkrRight IN", "SPK2 OUT";
90 qcom,msm-mbhc-hphl-swh = <0>;
91 qcom,msm-mbhc-gnd-swh = <0>;
92 qcom,us-euro-gpios = <&wcd_us_euro_gpio>;
93 qcom,hph-en0-gpio = <&hph_en0_gpio>;
94 qcom,hph-en1-gpio = <&hph_en1_gpio>;
95 qcom,tasha-mclk-clk-freq = <9600000>;
96 asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
97 <&loopback>, <&compress>, <&hostless>,
98 <&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
99 <&pcm_noirq>, <&cpe3>, <&trans_loopback>;
100 asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
101 "msm-pcm-dsp.2", "msm-voip-dsp",
102 "msm-pcm-voice", "msm-pcm-loopback",
103 "msm-compress-dsp", "msm-pcm-hostless",
104 "msm-pcm-afe", "msm-lsm-client",
105 "msm-pcm-routing", "msm-cpe-lsm",
106 "msm-compr-dsp", "msm-pcm-dsp-noirq",
107 "msm-cpe-lsm.3", "msm-transcode-loopback";
108 asoc-cpu = <&dai_hdmi>, <&dai_dp>,
109 <&dai_mi2s0>, <&dai_mi2s1>,
110 <&dai_mi2s2>, <&dai_mi2s3>,
111 <&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
112 <&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
113 <&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
114 <&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
115 <&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
116 <&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
117 <&afe_proxy_tx>, <&incall_record_rx>,
118 <&incall_record_tx>, <&incall_music_rx>,
119 <&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
120 <&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>,
121 <&usb_audio_rx>, <&usb_audio_tx>,
122 <&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
123 <&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
124 <&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
125 <&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
126 asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608",
127 "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
128 "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
129 "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
130 "msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
131 "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
132 "msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
133 "msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
134 "msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
135 "msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
136 "msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
137 "msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
138 "msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
139 "msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
140 "msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
141 "msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
142 "msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
143 "msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
144 "msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
145 "msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
146 "msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
147 "msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
148 asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
149 asoc-codec-names = "msm-stub-codec.1",
150 "msm-ext-disp-audio-codec-rx";
151 qcom,wsa-max-devs = <2>;
152 qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
153 <&wsa881x_213>, <&wsa881x_214>;
154 qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
155 "SpkrLeft", "SpkrRight";
157 hph_en0_gpio: msm_cdc_pinctrl@67 {
158 compatible = "qcom,msm-cdc-pinctrl";
159 pinctrl-names = "aud_active", "aud_sleep";
160 pinctrl-0 = <&hph_en0_active>;
161 pinctrl-1 = <&hph_en0_idle>;
164 hph_en1_gpio: msm_cdc_pinctrl@68 {
165 compatible = "qcom,msm-cdc-pinctrl";
166 pinctrl-names = "aud_active", "aud_sleep";
167 pinctrl-0 = <&hph_en1_active>;
168 pinctrl-1 = <&hph_en1_idle>;
172 snd_934x: sound-tavil {
173 compatible = "qcom,msm8998-asoc-snd-tavil";
174 qcom,model = "msm8998-tavil-snd-card";
175 qcom,ext-disp-audio-rx;
177 qcom,mi2s-audio-intf;
178 qcom,auxpcm-audio-intf;
179 qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
181 reg = <0x1711a000 0x4>,
185 reg-names = "lpaif_pri_mode_muxsel",
186 "lpaif_sec_mode_muxsel",
187 "lpaif_tert_mode_muxsel",
188 "lpaif_quat_mode_muxsel";
194 "hifi amp", "LINEOUT1",
195 "hifi amp", "LINEOUT2",
196 "AMIC2", "MIC BIAS2",
197 "MIC BIAS2", "Headset Mic",
198 "AMIC3", "MIC BIAS2",
199 "MIC BIAS2", "ANCRight Headset Mic",
200 "AMIC4", "MIC BIAS2",
201 "MIC BIAS2", "ANCLeft Headset Mic",
202 "AMIC5", "MIC BIAS3",
203 "MIC BIAS3", "Handset Mic",
204 "DMIC0", "MIC BIAS1",
205 "MIC BIAS1", "Digital Mic0",
206 "DMIC1", "MIC BIAS1",
207 "MIC BIAS1", "Digital Mic1",
208 "DMIC2", "MIC BIAS3",
209 "MIC BIAS3", "Digital Mic2",
210 "DMIC3", "MIC BIAS3",
211 "MIC BIAS3", "Digital Mic3",
212 "DMIC4", "MIC BIAS4",
213 "MIC BIAS4", "Digital Mic4",
214 "DMIC5", "MIC BIAS4",
215 "MIC BIAS4", "Digital Mic5",
216 "SpkrLeft IN", "SPK1 OUT",
217 "SpkrRight IN", "SPK2 OUT";
219 qcom,msm-mbhc-hphl-swh = <0>;
220 qcom,msm-mbhc-gnd-swh = <0>;
221 qcom,us-euro-gpios = <&tavil_us_euro_sw>;
222 qcom,hph-en0-gpio = <&tavil_hph_en0>;
223 qcom,hph-en1-gpio = <&tavil_hph_en1>;
224 qcom,tavil-mclk-clk-freq = <9600000>;
226 qcom,usbc-analog-en1_gpio = <&wcd_usbc_analog_en1_gpio>;
227 qcom,usbc-analog-en2_n_gpio = <&wcd_usbc_analog_en2n_gpio>;
229 asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
230 <&loopback>, <&compress>, <&hostless>,
231 <&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
232 <&pcm_noirq>, <&trans_loopback>;
233 asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
234 "msm-pcm-dsp.2", "msm-voip-dsp",
235 "msm-pcm-voice", "msm-pcm-loopback",
236 "msm-compress-dsp", "msm-pcm-hostless",
237 "msm-pcm-afe", "msm-lsm-client",
238 "msm-pcm-routing", "msm-cpe-lsm",
239 "msm-compr-dsp", "msm-pcm-dsp-noirq",
240 "msm-transcode-loopback";
241 asoc-cpu = <&dai_hdmi>, <&dai_dp>,
242 <&dai_mi2s0>, <&dai_mi2s1>,
243 <&dai_mi2s2>, <&dai_mi2s3>,
244 <&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
245 <&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
246 <&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
247 <&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
248 <&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
249 <&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
250 <&afe_proxy_tx>, <&incall_record_rx>,
251 <&incall_record_tx>, <&incall_music_rx>,
252 <&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
253 <&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>,
254 <&usb_audio_rx>, <&usb_audio_tx>,
255 <&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
256 <&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
257 <&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
258 <&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
259 asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608",
260 "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
261 "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
262 "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
263 "msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
264 "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
265 "msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
266 "msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
267 "msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
268 "msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
269 "msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
270 "msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
271 "msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
272 "msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
273 "msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
274 "msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
275 "msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
276 "msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
277 "msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
278 "msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
279 "msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
280 "msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
281 asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
282 asoc-codec-names = "msm-stub-codec.1",
283 "msm-ext-disp-audio-codec-rx";
284 qcom,wsa-max-devs = <2>;
285 qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
286 <&wsa881x_0213>, <&wsa881x_0214>;
287 qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
288 "SpkrLeft", "SpkrRight";
291 cpe: qcom,msm-cpe-lsm {
292 compatible = "qcom,msm-cpe-lsm";
293 qcom,msm-cpe-lsm-id = <1>;
296 cpe3: qcom,msm-cpe-lsm@3 {
297 compatible = "qcom,msm-cpe-lsm";
298 qcom,msm-cpe-lsm-id = <3>;
302 compatible = "qcom,wcd-dsp-mgr";
303 qcom,wdsp-components = <&wcd934x_cdc 0>,
305 <&glink_spi_xprt_wdsp 2>;
306 qcom,img-filename = "cpe_9340";
309 wcd_us_euro_gpio: msm_cdc_pinctrl@75 {
310 compatible = "qcom,msm-cdc-pinctrl";
311 pinctrl-names = "aud_active", "aud_sleep";
312 pinctrl-0 = <&wcd_gnd_mic_swap_active>;
313 pinctrl-1 = <&wcd_gnd_mic_swap_idle>;
316 wcd_usbc_analog_en1_gpio: msm_cdc_pinctrl@59 {
317 compatible = "qcom,msm-cdc-pinctrl";
318 pinctrl-names = "aud_active", "aud_sleep";
319 pinctrl-0 = <&wcd_usbc_analog_en1_active>;
320 pinctrl-1 = <&wcd_usbc_analog_en1_idle>;
323 wcd_usbc_analog_en2n_gpio: msm_cdc_pinctrl@60 {
324 compatible = "qcom,msm-cdc-pinctrl";
325 pinctrl-names = "aud_active", "aud_sleep";
326 pinctrl-0 = <&wcd_usbc_analog_en2n_active>;
327 pinctrl-1 = <&wcd_usbc_analog_en2n_idle>;
330 wcd9xxx_intc: wcd9xxx-irq {
332 compatible = "qcom,wcd9xxx-irq";
333 interrupt-controller;
334 #interrupt-cells = <1>;
335 interrupt-parent = <&tlmm>;
336 qcom,gpio-connect = <&tlmm 54 0>;
337 pinctrl-names = "default";
338 pinctrl-0 = <&wcd_intr_default>;
341 clock_audio: audio_ext_clk {
343 compatible = "qcom,audio-ref-clk";
344 qcom,audio-ref-clk-gpio = <&pm8998_gpios 13 0>;
345 clock-names = "osr_clk";
346 clocks = <&clock_gcc clk_div_clk1>;
347 qcom,node_has_rpm_clock;
349 pinctrl-names = "sleep", "active";
350 pinctrl-0 = <&spkr_i2s_clk_sleep>;
351 pinctrl-1 = <&spkr_i2s_clk_active>;
354 clock_audio_lnbb: audio_ext_clk_lnbb {
356 compatible = "qcom,audio-ref-clk";
357 clock-names = "osr_clk";
358 clocks = <&clock_gcc clk_ln_bb_clk2>;
359 qcom,node_has_rpm_clock;
363 wcd_rst_gpio: msm_cdc_pinctrl@64 {
364 compatible = "qcom,msm-cdc-pinctrl";
365 qcom,cdc-rst-n-gpio = <&tlmm 64 0>;
366 pinctrl-names = "aud_active", "aud_sleep";
367 pinctrl-0 = <&cdc_reset_active>;
368 pinctrl-1 = <&cdc_reset_sleep>;
372 compatible = "qcom,wcd-dsp-glink";
378 compatible = "qcom,msm-dai-slim";
379 elemental-addr = [ff ff ff fe 17 02];
383 compatible = "qcom,tasha-slim-pgd";
384 elemental-addr = [00 01 A0 01 17 02];
386 interrupt-parent = <&wcd9xxx_intc>;
387 interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
388 17 18 19 20 21 22 23 24 25 26 27 28 29
391 qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
393 clock-names = "wcd_clk", "wcd_native_clk";
394 clocks = <&clock_audio clk_audio_pmi_clk>,
395 <&clock_audio clk_audio_ap_clk2>;
397 cdc-vdd-buck-supply = <&pm8998_s4>;
398 qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
399 qcom,cdc-vdd-buck-current = <650000>;
401 cdc-buck-sido-supply = <&pm8998_s4>;
402 qcom,cdc-buck-sido-voltage = <1800000 1800000>;
403 qcom,cdc-buck-sido-current = <250000>;
405 cdc-vdd-tx-h-supply = <&pm8998_s4>;
406 qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
407 qcom,cdc-vdd-tx-h-current = <25000>;
409 cdc-vdd-rx-h-supply = <&pm8998_s4>;
410 qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
411 qcom,cdc-vdd-rx-h-current = <25000>;
413 cdc-vddpx-1-supply = <&pm8998_s4>;
414 qcom,cdc-vddpx-1-voltage = <1800000 1800000>;
415 qcom,cdc-vddpx-1-current = <10000>;
417 qcom,cdc-static-supplies = "cdc-vdd-buck",
423 qcom,cdc-micbias1-mv = <1800>;
424 qcom,cdc-micbias2-mv = <1800>;
425 qcom,cdc-micbias3-mv = <1800>;
426 qcom,cdc-micbias4-mv = <1800>;
428 qcom,cdc-mclk-clk-rate = <9600000>;
429 qcom,cdc-slim-ifd = "tasha-slim-ifd";
430 qcom,cdc-slim-ifd-elemental-addr = [00 00 A0 01 17 02];
431 qcom,cdc-dmic-sample-rate = <4800000>;
432 qcom,cdc-mad-dmic-rate = <600000>;
433 qcom,cdc-ecpp-dmic-rate = <1200000>;
436 wcd934x_cdc: tavil_codec {
437 compatible = "qcom,tavil-slim-pgd";
438 elemental-addr = [00 01 50 02 17 02];
440 interrupt-parent = <&wcd9xxx_intc>;
441 interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
442 17 18 19 20 21 22 23 24 25 26 27 28 29
445 qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
447 clock-names = "wcd_clk";
448 clocks = <&clock_audio_lnbb clk_audio_pmi_lnbb_clk>;
450 cdc-vdd-buck-supply = <&pm8998_s4>;
451 qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
452 qcom,cdc-vdd-buck-current = <650000>;
454 cdc-buck-sido-supply = <&pm8998_s4>;
455 qcom,cdc-buck-sido-voltage = <1800000 1800000>;
456 qcom,cdc-buck-sido-current = <250000>;
458 cdc-vdd-tx-h-supply = <&pm8998_s4>;
459 qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
460 qcom,cdc-vdd-tx-h-current = <25000>;
462 cdc-vdd-rx-h-supply = <&pm8998_s4>;
463 qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
464 qcom,cdc-vdd-rx-h-current = <25000>;
466 cdc-vddpx-1-supply = <&pm8998_s4>;
467 qcom,cdc-vddpx-1-voltage = <1800000 1800000>;
468 qcom,cdc-vddpx-1-current = <10000>;
470 qcom,cdc-static-supplies = "cdc-vdd-buck",
476 qcom,cdc-micbias1-mv = <1800>;
477 qcom,cdc-micbias2-mv = <1800>;
478 qcom,cdc-micbias3-mv = <1800>;
479 qcom,cdc-micbias4-mv = <1800>;
481 qcom,cdc-mclk-clk-rate = <9600000>;
482 qcom,cdc-slim-ifd = "tavil-slim-ifd";
483 qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
484 qcom,cdc-dmic-sample-rate = <4800000>;
485 qcom,cdc-mad-dmic-rate = <600000>;
487 qcom,wdsp-cmpnt-dev-name = "tavil_codec";
490 compatible = "qcom,wcd-spi-v2";
491 qcom,master-bus-num = <10>;
492 qcom,chip-select = <0>;
493 qcom,max-frequency = <24000000>;
494 qcom,mem-base-addr = <0x100000>;