audio dtsi 相关参数描写

xref: /txgon/kernel/msm-4.9/Documentation/devicetree/bindings/sound/qcom-audio-dev.txt

  • only in /txgon/kernel/msm-4.9/Documentation/devicetree/bindings/sound/
1 Qualcomm technologies inc audio devices for ALSA sound SoC
2 
3 * msm-pcm
4 
5 Required properties:
6 
7  - compatible : "qcom,msm-pcm-dsp"
8 
9  - qcom,msm-pcm-dsp-id : device node id
10 
11 * msm-pcm-low-latency
12 
13 Required properties:
14 
15  - compatible : "qcom,msm-pcm-dsp"
16 
17  - qcom,msm-pcm-dsp-id : device node id
18 
19    Optional properties
20 
21       - qcom,msm-pcm-low-latency : Flag indicating whether
22         the device node is of type low latency.
23 
24       - qcom,latency-level : Flag indicating whether the device node
25                             is of type regular low latency or ultra
26                             low latency.
27                             regular : regular low latency stream
28                             ultra : ultra low latency stream
29                             ull-pp : ultra low latency stream with post-processing capability
30 
31 * msm-pcm-dsp-noirq
32 
33 Required properties:
34 
35  - compatible : "qcom,msm-pcm-dsp-noirq";
36 
37    Optional properties
38 
39       - qcom,msm-pcm-low-latency : Flag indicating whether
40         the device node is of type low latency
41 
42       - qcom,latency-level : Flag indicating whether the device node
43                            is of type low latency or ultra low latency
44                            ultra : ultra low latency stream
45                            ull-pp : ultra low latency stream with post-processing capability
46 * msm-pcm-routing
47 
48 Required properties:
49 
50  - compatible : "qcom,msm-pcm-routing"
51 
52 * msm-pcm-lpa
53 
54 Required properties:
55 
56  - compatible : "qcom,msm-pcm-lpa"
57 
58 * msm-compr-dsp
59 
60 Required properties:
61 
62  - compatible : "qcom,msm-compr-dsp"
63 
64 * msm-compress-dsp
65 
66 Required properties:
67 
68  - compatible : "qcom,msm-compress-dsp"
69 
70 Optional properties
71  - qcom,adsp-version:
72 	This property can be used to specify the ADSP version/name.
73 	Based on ADSP version, we decide if we have to use older
74 	ADSP APIs or newer. Right now we are adding "MDSP 1.2" for
75 	8909 purpose.If the ADSP version is anything other than this
76 	we use new ADSP APIs.
77 
78 * msm-voip-dsp
79 
80 Required properties:
81 
82  - compatible : "qcom,msm-voip-dsp"
83 
84 * msm-pcm-voice
85 
86 Required properties:
87 
88  - compatible : "qcom,msm-pcm-voice"
89  - qcom,destroy-cvd : Flag indicating whether to destroy cvd at
90                       the end of call for low memory targets
91 
92 * msm-voice-host-pcm
93 
94 Required properties:
95 
96  - compatible : "qcom,msm-voice-host-pcm"
97 
98 * msm-voice-svc
99
100Required properties:
101
102 - compatible : "qcom,msm-voice-svc"
103
104* msm-stub-codec
105
106Required properties:
107
108 - compatible : "qcom,msm-stub-codec"
109
110* msm-hdmi-dba-codec-rx
111
112Required properties:
113 
114  - compatible : "qcom,msm-hdmi-dba-codec-rx"
115  - qcom,dba-bridge-chip: String info to indicate which bridge-chip
116                          is used for HDMI using DBA.
117 
118 * msm-dai-fe
119 
120 Required properties:
121 
122  - compatible : "qcom,msm-dai-fe"
123 
124 * msm-pcm-afe
125 
126 Required properties:
127 
128  - compatible : "qcom,msm-pcm-afe"
129 
130 * msm-pcm-dtmf
131 
132 Required properties:
133 
134  - compatible : "qcom,msm-pcm-dtmf"
135  - qcom,msm-pcm-dtmf : Enable DTMF driver in Audio. DTMF driver is
136    used for generation and detection of DTMF tones, when user is in
137    active voice call. APR commands are sent from DTMF driver to ADSP.
138 
139 * msm-dai-stub
140 
141 [First Level Nodes]
142 
143 Required properties:
144 
145  - compatible : "msm-dai-stub"
146 
147 [Second Level Nodes]
148 
149 Required properties:
150 
151  - compatible : "qcom,msm-dai-stub-dev"
152  - qcom,msm-dai-stub-dev-id : Stub dai port ID value is from 0 to 3.
153    This enables stub CPU dai in Audio. The stub dai is used when
154    there is no real backend in Audio.
155 
156 * msm-dai-q6-spdif
157 
158 Optional properties:
159 
160  - compatible : "msm-dai-q6-spdif"
161 
162 * msm-dai-q6-hdmi
163 
164 Required properties:
165  - compatible : "msm-dai-q6-hdmi"
166  - qcom,msm-dai-q6-dev-id : The hdmi multi channel port ID.
167    It is passed onto the dsp from the apps to form an audio
168    path to the HDMI device. Currently the only supported value
169    is 8, which indicates the rx path used for audio playback
170    on HDMI device.
171 
172 * msm-lsm-client
173 
174 Required properties:
175 
176  - compatible : "qcom,msm-lsm-client"
177 
178 * msm-pcm-loopback
179 
180 Required properties:
181 
182  - compatible : "qcom,msm-pcm-loopback"
183 
184 Optional properties:
185 
186  - qcom,msm-pcm-loopback-low-latency : Flag indicating whether
187    the device node is of type low latency.
188 
189 * msm-transcode-loopback
190 
191 Required properties:
192 
193  - compatible : "qcom,msm-transcode-loopback"
194 
195 * msm-dai-q6
196 
197 [First Level Nodes]
198 
199 Required properties:
200 
201  - compatible : "msm-dai-q6"
202 
203 Optional properties:
204 
205  - qcom,ext-spk-amp-supply : External speaker amplifier power supply.
206  - qcom,ext-spk-amp-gpio : External speaker amplifier enable signal.
207 
208 [Second Level Nodes]
209 
210 Required properties:
211 
212  - compatible : "qcom,msm-dai-q6-dev"
213  - qcom,msm-dai-q6-dev-id : The slimbus multi channel port ID
214                             Value is from 16384 to 16397
215                             BT SCO port ID value from 12288 to 12289
216                             RT Proxy port ID values from 224 to 225 and 240 to
217 			    241
218                             FM Rx and TX port ID values from 12292 to 12293
219                             incall record Rx and TX port ID values from 32771 to 32772
220                             inCall Music Delivery port ID is 32773
221 			    incall Music 2 Delivery port ID is 32770
222 
223 * msm-auxpcm
224 
225 Required properties:
226 
227  - compatible :                           "qcom,msm-auxpcm-dev"
228 
229  - qcom,msm-cpudai-auxpcm-mode:           mode information. The first value is
230                                           for 8khz mode, the second is for
231                                           16khz
232                                           0 - for PCM
233 
234  - qcom,msm-cpudai-auxpcm-sync:           sync information. The first value is
235                                           for 8khz mode, the second is for
236                                           16khz
237 
238  - qcom,msm-cpudai-auxpcm-frame:          No.of bytes per frame. The first
239                                           value is for 8khz mode, the second
240                                           is for 16khz
241                                           5 - 256BPF
242                                           4 - 128BPF
243 
244  - qcom,msm-cpudai-auxpcm-quant:          Type of quantization. The first
245                                           value is for 8khz mode, the second
246                                           is for 16khz
247                                           2 - Linear quantization
248 
249  - qcom,msm-cpudai-auxpcm-num-slots:      Number of slots per mode in the
250                                           msm-cpudai-auxpcm-slot-mapping
251                                           array.
252                                           The first value is for 8khz mode, the
253                                           second is for 16khz. Max number of
254                                           slots supported by DSP is 4, anything
255                                           above 4 will be truncated to 4 when
256                                           sent to DSP.
257 
258  - qcom,msm-cpudai-auxpcm-slot-mapping:   Array of slot numbers for multi
259                                           slot scenario. The first array
260                                           is for 8khz mode, the second is
261                                           for 16khz. The size of the array
262                                           is determined by the value in
263                                           qcom,msm-cpudai-auxpcm-num-slots
264 
265  - qcom,msm-cpudai-auxpcm-data:           Data field - 0. The first value is
266                                           for 8khz mode, the second is for
267                                           16khz
268 
269  - qcom,msm-cpudai-auxpcm-pcm-clk-rate:   Clock rate for pcm - 2048000. The
270                                           first value is for 8khz mode, the
271                                           second is for 16KHz mode. When clock
272 					  rate is set to zero, then external
273 					  clock is assumed.
274 
275  - qcom,msm-auxpcm-interface:             name of AUXPCM interface "primary"
276                                           indicates primary AUXPCM interface
277                                           "secondary" indicates secondary
278                                           AUXPCM interface
279 Optional properties:
280 
281 - pinctrl-names:			  Pinctrl state names for each pin
282 					  group configuration.
283 - pinctrl-x: 				  Defines pinctrl state for each pin
284 					  group
285 - qcom,msm-cpudai-afe-clk-ver:            Indicates version of AFE clock
286 					  interface to be used for enabling
287 					  PCM clock. If not defined, selects
288 					  default AFE clock interface.
289 
290 * msm-pcm-hostless
291 
292 Required properties:
293 
294  - compatible : "qcom,msm-pcm-hostless"
295 
296 * msm-audio-apr
297 
298 Required properties:
299 
300  - compatible : "qcom,msm-audio-apr"
301 		This device is added to represent APR module.
302 
303  - qcom,subsys-name: This value provides the subsystem name where codec
304 		is present. It can be "apr_modem" or "apr_adsp". This
305 		property enable apr driver to receive subsystem up/down
306 		notification from modem/adsp.
307 
308 Optional properties:
309 
310  - compatible : "qcom,msm-audio-apr-dummy"
311 		Add this compatible as child device to msm-audio-apr device.
312 		This child device is added after lpass is up to invoke
313		deferred probe devices.
314
315* msm-ocmem-audio
316
317Required properties:
318
319 - compatible :                            "qcom,msm-ocmem-audio"
320
321 - qcom,msm_bus,name:                      Client name
322
323 - qcom,msm_bus,num_cases:                 Total number of use cases
324
325 - qcom,msm_bus,active_only:               Context flag for requests in active
326					   or dual (active & sleep) contex
327
328 - qcom,msm_bus,num_paths:                 Total number of master-slave pairs
329
330 - qcom,msm_bus,vectors:                   Arrays of unsigned integers
331					   representing:
332					       master-id, slave-id, arbitrated
333					       bandwidth,
334					       instantaneous bandwidth
335* wcd9xxx_intc
336
337Required properties:
338
339  - compatible :                            "qcom,wcd9xxx-irq"
340 
341  - interrupt-controller :                  Mark this device node as an
342 					   interrupt controller
343 
344  - #interrupt-cells :                      Should be 1
345 
346  - interrupt-parent :                      Parent interrupt controller
347 
348  - qcom,gpio-connect                       Gpio that connects to parent
349                                            interrupt controller
350 
351 * audio-ext-clk-up
352 
353 Required properties:
354 
355  - compatible :                            "qcom,audio-ref-clk"
356 
357  - qcom,audio-ref-clk-gpio  :               PMIC or APQ gpio that will be
358                                             requested to enable reference
359                                             or external clock.
360 
361 Optional properties:
362 
363  - qcom,node_has_rpm_clock:                 Boolean property used to indicate
364                                             whether ref. clock can be enabled
365                                             with a gpio toggle or Kernel clock
366                                             API call.
367 
368  - clock-names:                             Name of the PMIC clock that needs
369                                             to be enabled for audio ref clock.
370                                             This clock is set as parent.
371 
372  - clocks:                                  phandle reference to the parent
373                                             clock.
374 
375  - qcom,mclk-clk-reg:                       Indicate the register address for mclk.
376 
377  - qcom,lpass-mclk-id:                      Property to update LPASS MCLK Id.
378 
379 * audio_slimslave
380 
381 Required properties:
382 
383  - compatible :                            "qcom,audio-slimslave"
384 
385  - elemental-addr:                         slimbus slave enumeration address.
386 
387 * msm-cpe-lsm
388 
389 Required properties:
390 
391  - compatible : "qcom,msm-cpe-lsm"
392  - qcom,msm-cpe-lsm-id : lsm afe port ID. CPE lsm driver uses
393    this property to find out the input afe port ID. Currently
394    only supported values are 1 and 3.
395 
396 * wcd_us_euro_gpio
397 
398 Required properties:
399 
400  - compatible : "qcom,msm-cdc-pinctrl"
401 
402Optional properties:
403 - qcom,lpi-gpios : This boolean property is added if GPIOs are under
404		    LPI TLMM.
405
406* msm-dai-slim
407
408Required properties:
409
410 - compatible :                            "qcom,msm-dai-slim"
411
412 - elemental-addr:                         slimbus slave enumeration address.
413
414* wcd_gpio_ctrl
415
416Required properties:
417
418 - compatible :                            "qcom,msm-cdc-pinctrl"
419
420 - qcom,cdc-rst-n-gpio :                   TLMM GPIO number
421
422 - pinctrl-names:                          Pinctrl state names for each pin
423                                           group configuration.
424  - pinctrl-x:                              Defines pinctrl state for each pin
425                                            group.
426 * msm_cdc_pinctrl
427 
428 Required properties:
429 
430  - compatible :                            "qcom,msm-cdc-pinctrl"
431 
432  - pinctrl-names:                          Pinctrl state names for each pin
433                                            group configuration.
434  - pinctrl-x:                              Defines pinctrl state for each pin
435                                            group.
436 
437 * wcd_dsp_glink
438 
439 Required properties:
440 
441  - compatible :                            "qcom,wcd-dsp-glink"
442  - qcom,msm-codec-glink-edge:              Name of the glink edge which is used
443                                            for IPC.
444                                            If no name is set, it defaults to "wdsp"
445 
446 * msm_ext_disp_audio_codec_rx
447 
448 Required properties:
449 
450  - compatible :                            "qcom,msm-ext-disp-audio-codec-rx"
451 
452 Example:
453 
454 	qcom,msm-pcm {
455 		compatible = "qcom,msm-pcm-dsp";
456 		qcom,msm-pcm-dsp-id = <0>;
457 	};
458 
459 	qcom,msm-pcm-low-latency {
460 		compatible = "qcom,msm-pcm-dsp";
461 		qcom,msm-pcm-dsp-id = <1>;
462 		qcom,msm-pcm-low-latency;
463 	};
464 
465 	qcom,msm-pcm-loopback-low-latency {
466 		compatible = "qcom,msm-pcm-loopback";
467 		qcom,msm-pcm-loopback-low-latency;
468 	};
469 
470         qcom,msm-pcm-routing {
471                 compatible = "qcom,msm-pcm-routing";
472         };
473 
474         qcom,msm-pcm-lpa {
475                 compatible = "qcom,msm-pcm-lpa";
476         };
477 
478         qcom,msm-compr-dsp {
479                 compatible = "qcom,msm-compr-dsp";
480         };
481 
482        qcom,msm-compress-dsp {
483                compatible = "qcom,msm-compress-dsp";
484        };
485
486        qcom,msm-voip-dsp {
487                compatible = "qcom,msm-voip-dsp";
488        };
489
490	qcom,msm-pcm-voice {
491		compatible = "qcom,msm-pcm-voice";
492		qcom,destroy-cvd;
493	};
494
495        qcom,msm-voice-host-pcm {
496                compatible = "qcom,msm-voice-host-pcm";
497        };
498
499        qcom,msm-stub-codec {
500                compatible = "qcom,msm-stub-codec";
501        };
502
503        qcom,msm-dai-fe {
504                compatible = "qcom,msm-dai-fe";
505        };
506
507 	qcom,msm-pcm-dtmf {
508 		compatible = "qcom,msm-pcm-dtmf";
509 	};
510 
511 	qcom,msm-dai-stub {
512 		compatible = "qcom,msm-dai-stub";
513 	};
514 
515 	qcom,msm-dai-q6-spdif {
516 		compatible = "qcom,msm-dai-q6-spdif";
517 	};
518 
519 	qcom,msm-dai-q6-hdmi {
520 		compatible = "qcom,msm-dai-q6-hdmi";
521 		qcom,msm-dai-q6-dev-id = <8>;
522 	};
523 
524 	dai_dp: qcom,msm-dai-q6-dp {
525 		compatible = "qcom,msm-dai-q6-hdmi";
526 		qcom,msm-dai-q6-dev-id = <24608>;
527 	};
528 
529 	qcom,msm-dai-q6 {
530 		compatible = "qcom,msm-dai-q6";
531 		qcom,msm-dai-q6-sb-0-rx {
532 			compatible = "qcom,msm-dai-q6-dev";
533 			qcom,msm-dai-q6-dev-id = <16384>;
534 		};
535 
536 		qcom,msm-dai-q6-sb-0-tx {
537 			compatible = "qcom,msm-dai-q6-dev";
538 			qcom,msm-dai-q6-dev-id = <16385>;
539 		};
540
541		qcom,msm-dai-q6-sb-1-rx {
542			compatible = "qcom,msm-dai-q6-dev";
543			qcom,msm-dai-q6-dev-id = <16386>;
544		};
545
546		qcom,msm-dai-q6-sb-1-tx {
547			compatible = "qcom,msm-dai-q6-dev";
548			qcom,msm-dai-q6-dev-id = <16387>;
549		};
550
551		qcom,msm-dai-q6-sb-3-rx {
552			compatible = "qcom,msm-dai-q6-dev";
553			qcom,msm-dai-q6-dev-id = <16390>;
554		};
555
556 		qcom,msm-dai-q6-sb-3-tx {
557 			compatible = "qcom,msm-dai-q6-dev";
558 			qcom,msm-dai-q6-dev-id = <16391>;
559 		};
560 
561 		qcom,msm-dai-q6-sb-4-rx {
562 			compatible = "qcom,msm-dai-q6-dev";
563 			qcom,msm-dai-q6-dev-id = <16392>;
564 		};
565 
566 		qcom,msm-dai-q6-sb-4-tx {
567 			compatible = "qcom,msm-dai-q6-dev";
568 			qcom,msm-dai-q6-dev-id = <16393>;
569 		};
570 
571 		qcom,msm-dai-q6-sb-5-tx {
572 			compatible = "qcom,msm-dai-q6-dev";
573 			qcom,msm-dai-q6-dev-id = <16395>;
574 		};
575 
576 		qcom,msm-dai-q6-sb-6-rx {
577 			compatible = "qcom,msm-dai-q6-dev";
578 			qcom,msm-dai-q6-dev-id = <16396>;
579 		};
580 
581 		qcom,msm-dai-q6-sb-6-tx {
582 			compatible = "qcom,msm-dai-q6-dev";
583 			qcom,msm-dai-q6-dev-id = <16397>;
584 		};
585 
586 		qcom,msm-dai-q6-bt-sco-rx {
587 			compatible = "qcom,msm-dai-q6-dev";
588 			qcom,msm-dai-q6-dev-id = <12288>;
589		};
590
591		qcom,msm-dai-q6-bt-sco-tx {
592			compatible = "qcom,msm-dai-q6-dev";
593			qcom,msm-dai-q6-dev-id = <12289>;
594		};
595
596		qcom,msm-dai-q6-int-fm-rx {
597 			compatible = "qcom,msm-dai-q6-dev";
598 			qcom,msm-dai-q6-dev-id = <12292>;
599 		};
600 
601 		qcom,msm-dai-q6-int-fm-tx {
602 			compatible = "qcom,msm-dai-q6-dev";
603 			qcom,msm-dai-q6-dev-id = <12293>;
604 		};
605 
606 		qcom,msm-dai-q6-be-afe-pcm-rx {
607 			compatible = "qcom,msm-dai-q6-dev";
608 			qcom,msm-dai-q6-dev-id = <224>;
609 		};
610 
611 		qcom,msm-dai-q6-be-afe-pcm-tx {
612 			compatible = "qcom,msm-dai-q6-dev";
613 			qcom,msm-dai-q6-dev-id = <225>;
614 		};
615 
616 		qcom,msm-dai-q6-afe-proxy-rx {
617 			compatible = "qcom,msm-dai-q6-dev";
618 			qcom,msm-dai-q6-dev-id = <241>;
619 		};
620 
621 		qcom,msm-dai-q6-afe-proxy-tx {
622 			compatible = "qcom,msm-dai-q6-dev";
623 			qcom,msm-dai-q6-dev-id = <240>;
624 		};
625 
626 		qcom,msm-dai-q6-incall-record-rx {
627 			compatible = "qcom,msm-dai-q6-dev";
628 			qcom,msm-dai-q6-dev-id = <32771>;
629 		};
630
631		qcom,msm-dai-q6-incall-record-tx {
632			compatible = "qcom,msm-dai-q6-dev";
633			qcom,msm-dai-q6-dev-id = <32772>;
634		};
635
636		qcom,msm-dai-q6-incall-music-rx {
637			compatible = "qcom,msm-dai-q6-dev";
638			qcom,msm-dai-q6-dev-id = <32773>;
639		};
640
641		qcom,msm-dai-q6-incall-music-2-rx {
642			compatible = "qcom,msm-dai-q6-dev";
643			qcom,msm-dai-q6-dev-id = <32770>;
644		};
645
646		qcom,msm-dai-q6-incall-music-dl-rx {
647			compatible = "qcom,msm-dai-q6-dev";
648			qcom,msm-dai-q6-dev-id = <32774>;
649		};
650	};
651
652	qcom,msm-pri-auxpcm {
653 		qcom,msm-cpudai-auxpcm-mode = <1>, <1>;
654 		qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
655 		qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
656 		qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
657 		qcom,msm-cpudai-auxpcm-num-slots = <4>, <4>;
658 		qcom,msm-cpudai-auxpcm-slot-mapping = <1 0 0 0>, <1 3 0 0>;
659 		qcom,msm-cpudai-auxpcm-data = <0>, <0>;
660 		qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
661 		qcom,msm-auxpcm-interface = "primary";
662 		compatible = "qcom,msm-auxpcm-dev";
663 		pinctrl-names = "default", "idle";
664 		pinctrl-0 = <&pri_aux_pcm_active &pri_aux_pcm_din_active>;
665 		pinctrl-1 = <&pri_aux_pcm_sleep &pri_aux_pcm_din_sleep>;
666 	};
667 
668         qcom,msm-pcm-hostless {
669                 compatible = "qcom,msm-pcm-hostless";
670         };
671 
672 	qcom,msm-audio-apr {
673 		compatible = "qcom,msm-audio-apr";
674 		msm_audio_apr_dummy {
675 			compatible = "qcom,msm-audio-apr-dummy";
676 		};
677 
678 		qcom,subsys-name = "apr_adsp";
679 	};
680 
681 	qcom,msm-ocmem-audio {
682 		compatible = "qcom,msm-ocmem-audio";
683 		qcom,msm_bus,name = "audio-ocmem";
684 		qcom,msm_bus,num_cases = <2>;
685 		qcom,msm_bus,active_only = <0>;
686 		qcom,msm_bus,num_paths = <1>;
687 		qcom,msm_bus,vectors =
688 			<11 604 0 0>,
689 			<11 604 32505856 325058560>;
690 	};
691 
692 	wcd9xxx_intc: wcd9xxx-irq {
693 		compatible = "qcom,wcd9xxx-irq";
694 		interrupt-controller;
695		#interrupt-cells = <1>;
696		interrupt-parent = <&msmgpio>;
697		interrupts = <72 0>;
698		interrupt-names = "cdc-int";
699	};
700
701	clock_audio: audio_ext_clk {
702		compatible = "qcom,audio-ref-clk";
703		qcom,audio-ref-clk-gpios = <&pm8994_gpios 15 0>;
704		clock-names = "osr_clk";
705		clocks = <&clock_rpm clk_div_clk1>;
706		qcom,node_has_rpm_clock;
707		#clock-cells = <1>;
708		pinctrl-names = "sleep", "active";
709		pinctrl-0 = <&spkr_i2s_clk_sleep>;
710		pinctrl-1 = <&spkr_i2s_clk_active>;
711	};
712
713	audio_slimslave {
714		compatible = "qcom,audio-slimslave";
715		elemental-addr = [ff ff ff ff 17 02];
716	};
717
718	msm_dai_slim {
719		compatible = "qcom,msm_dai_slim";
720		elemental-addr = [ff ff ff fe 17 02];
721	};
722
723	wcd_gpio_ctrl {
724		compatible = "qcom,msm-cdc-pinctrl";
725		qcom,cdc-rst-n-gpio = <&tlmm 64 0>;
726		pinctrl-names = "aud_active", "aud_sleep";
727		pinctrl-0 = <&cdc_reset_active>;
728		pinctrl-1 = <&cdc_reset_sleep>;
729	};
730
731	msm_cdc_pinctrl {
732		compatible = "qcom,msm-cdc-pinctrl";
733		pinctrl-names = "aud_active", "aud_sleep";
734		pinctrl-0 = <&cdc_reset_active>;
735		pinctrl-1 = <&cdc_reset_sleep>;
736	};
737
738	wcd_dsp_glink {
739		compatible = "qcom,wcd-dsp-glink";
740		qcom,msm-codec-glink-edge = "bg";
741	};
742
743	msm_ext_disp_audio_codec_rx {
744		compatible = "qcom,msm-ext-disp-audio-codec-rx";
745	};
746
747
748* MSM8916 ASoC Machine driver
749
750Required properties:
751- compatible : "qcom,msm8x16-audio-codec"
752- qcom,model : The user-visible name of this sound card.
753- qcom,msm-snd-card-id : This id is used to recognize the sound card number
754 - qcom,msm-codec-type : This property is used to recognize the codec type
755   internal or external.
756 - qcom,msm-hs-micbias-type : This property is used to recognize the headset
757   micbias type, internal or external.
758 - qcom,msm-ext-pa : This property is used to inform machine driver about
759   the connection of external PA over available MI2S interfaces,
760   following values can be given to this property.
761   primary -> Primary MI2S interface
762   secondary -> Secondary MI2S interface
763   tertiary -> Tertiary MI2S interface
764   quaternary -> Quaternary MI2S interface
765 - qcom,msm-mclk-freq : This property is used to inform machine driver about
766 mclk frequency needs to be configured for internal and external PA.
767 - qcom,msm-mbhc-hphl-swh: This property is used to distinguish headset HPHL
768 switch type on target typically the switch type will be normally open or
769 normally close, value for this property 0 for normally close and 1 for
770 normally open.
771 -  qcom,msm-mbhc-gnd-swh: This property is used to distinguish headset GND
772 switch type on target typically the switch type will be normally open or
773 normally close, value for this property 0 for normally close and 1 for
774 normally open.
775 - qcom,audio-routing : A list of the connections between audio components.
776 - pinctrl-names : Pincntrl entries to configure the PDM gpio lines and
777 		  cross connection switch gpio accordingly
778 - pinctrl-0 : This explains the active state of the PDM gpio lines
779 - pinctrl-1 : This explains the suspend state of the PDM gpio lines
780 - pinctrl-2 : This explains the active state of the cross connection
781 	      gpio lines
782 - pinctrl-3 : This explains the suspend state of the cross connection
783               gpio lines
784 - qcom,tapan-mclk-clk-freq : Tapan mclk Freq in Hz.
785 - qcom,prim-auxpcm-gpio-clk  : GPIO on which Primary AUXPCM clk signal is coming.
786 - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming.
787- qcom,prim-auxpcm-gpio-din  : GPIO on which Primary AUXPCM DIN signal is coming.
788- qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming.
789- qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port
790- qcom,tapan-codec-9302: Indicates that this device node is for WCD9302 audio
791			    codec.
792- asoc-platform: This is phandle list containing the references to platform device
793		 nodes that are used as part of the sound card dai-links.
794- asoc-platform-names: This property contains list of platform names. The order of
795		       the platform names should match to that of the phandle order
796		       given in "asoc-platform".
797 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
798 	    that are used as part of the sound card dai-links.
799 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
800 		  cpu dai names should match to that of the phandle order given
801 		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
802 		  where the id (%d) field represents the back-end AFE port id that
803 		  this CPU dai is associated with.
804 - asoc-codec: This is phandle list containing the references to codec dai device
805 	      nodes that are used as part of the sound card dai-links.
806 - asoc-codec-names: This property contains list of codec dai names. The order of the
807 		    codec dai names should match to that of the phandle order given
808 		    in "asoc-codec".
809 
810 Optional Properties:
811 - qcom,us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
812 
813 Example:
814 
815 	msm_dig_codec: qcom,msm-int-codec {
816 		compatible = "qcom,msm_int_core_codec";
817 		qcom,dig-cdc-base-addr = <0xc0f0000>;
818 	};
819 
820 	sound {
821 		compatible = "qcom,msm8x16-audio-codec";
822 		qcom,model = "msm8x16-snd-card";
823 		qcom,msm-snd-card-id = <0>;
824 		qcom,msm-codec-type = "internal";
825 		qcom,msm-ext-pa = <0>;
826 		qcom,msm-mclk-freq = <12288000>;
827 		qcom,msm-mbhc-hphl-swh = <0>;
828 		qcom,msm-mbhc-gnd-swh = <0>;
829 		qcom,msm-hs-micbias-type = "internal";
830		qcom,cdc-us-euro-gpios = <&msmgpio 120 0>;
831		qcom,audio-routing =
832			"RX_BIAS", "MCLK",
833			"INT_LDO_H", "MCLK",
834			"MIC BIAS External", "Handset Mic",
835			"MIC BIAS Internal2", "Headset Mic",
836			"MIC BIAS External", "Secondary Mic",
837			"AMIC1", "MIC BIAS External",
838 			"AMIC2", "MIC BIAS Internal2",
839 			"AMIC3", "MIC BIAS External";
840 		pinctrl-names = "cdc_pdm_lines_act",
841 				"cdc_pdm_lines_sus",
842 				"cross_conn_det_act",
843 				"cross_conn_det_sus";
844 		pinctrl-0 = <&cdc_pdm_lines_act>;
845 		pinctrl-1 = <&cdc_pdm_lines_sus>;
846 		pinctrl-2 = <&cross_conn_det_act>;
847 		pinctrl-3 = <&cross_conn_det_sus>;
848 		qcom,tapan-mclk-clk-freq = <9600000>;
849 		qcom,prim-auxpcm-gpio-clk  = <&msm_gpio 63 0>;
850 		qcom,prim-auxpcm-gpio-sync = <&msm_gpio 64 0>;
851 		qcom,prim-auxpcm-gpio-din  = <&msm_gpio 65 0>;
852 		qcom,prim-auxpcm-gpio-dout = <&msm_gpio 66 0>;
853 		qcom,prim-auxpcm-gpio-set = "prim-gpio-prim";
854 		qcom,tapan-codec-9302;
855 		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
856 				<&loopback>, <&compress>, <&hostless>,
857 				<&afe>, <&lsm>, <&routing>, <&lpa>;
858 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
859 				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
860 				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
861 				"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa";
862 		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>, <&dai_dp>,
863 				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
864 				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
865 				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
866 				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
867 				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
868 				<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
869 				<&incall_music_2_rx>;
870 		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
871				"msm-dai-q6-dp.24608",
872				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
873				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
874				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
875				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
876				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
877				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
878				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
879				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
880				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
881				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
882				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
883				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
884		asoc-codec = <&stub>, <&pm8916_tombak_dig>;
885		asoc-codec-names = "msm-stub-codec.1", "tombak_codec";
886	};
887
888* MSM8974 ASoC Machine driver
889
890Required properties:
891- compatible : "qcom,msm8974-audio-taiko"
892- qcom,model : The user-visible name of this sound card.
893 - qcom,audio-routing : A list of the connections between audio components.
894   Each entry is a pair of strings, the first being the connection's sink,
895   the second being the connection's source.
896 - qcom,cdc-mclk-gpios : GPIO on which mclk signal is coming.
897 - qcom,taiko-mclk-clk-freq : Taiko mclk Freq in Hz. currently only 9600000Hz
898 				is supported.
899 - qcom,prim-auxpcm-gpio-clk  : GPIO on which Primary AUXPCM clk signal is coming.
900 - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming.
901 - qcom,prim-auxpcm-gpio-din  : GPIO on which Primary AUXPCM DIN signal is coming.
902 - qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming.
903 - qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port
904 		 Possible Values:
905 		 prim-gpio-prim : Primary AUXPCM shares GPIOs with Primary MI2S
906 		 prim-gpio-tert : Primary AUXPCM shares GPIOs with Tertiary MI2S
907 - qcom,sec-auxpcm-gpio-clk  : GPIO on which Secondary AUXPCM clk signal is coming.
908 - qcom,sec-auxpcm-gpio-sync : GPIO on which Secondary AUXPCM SYNC signal is coming.
909 - qcom,sec-auxpcm-gpio-din  : GPIO on which Secondary AUXPCM DIN signal is coming.
910 - qcom,sec-auxpcm-gpio-dout : GPIO on which Secondary AUXPCM DOUT signal is coming.
911 - qcom,us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
912 - asoc-platform: This is phandle list containing the references to platform device
913 		 nodes that are used as part of the sound card dai-links.
914 - asoc-platform-names: This property contains list of platform names. The order of
915 		       the platform names should match to that of the phandle order
916 		       given in "asoc-platform".
917 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
918 	    that are used as part of the sound card dai-links.
919 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
920 		  cpu dai names should match to that of the phandle order given
921 		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
922 		  where the id (%d) field represents the back-end AFE port id that
923 		  this CPU dai is associated with.
924 - asoc-codec: This is phandle list containing the references to codec dai device
925 	      nodes that are used as part of the sound card dai-links.
926 - asoc-codec-names: This property contains list of codec dai names. The order of the
927 		    codec dai names should match to that of the phandle order given
928 		    in "asoc-codec".
929 Optional properties:
930 - reg : Offset and length of the register region(s) for MI2S/PCM MUX.
931 	Not applicable for all targets.
932 - reg-names : Register region name(s) referenced in reg above.
933 	      Not applicable for all targets.
934 	 Required register resource entries are:
935 	 "lpaif_pri_mode_muxsel": Physical address of MUX to select between
936 				  Primary PCM and Primary MI2S
937 	 "lpaif_sec_mode_muxsel": Physical address of MUX to select between
938 				  Secondary PCM and Secondary MI2S
939 	 "lpaif_tert_mode_muxsel": Physical address of MUX to select between
940 				   Primary PCM and Tertiary MI2S
941 	 "lpaif_quat_mode_muxsel": Physical address of MUX to select between
942 				   Secondary PCM and Quarternary MI2S
943 - qcom,hdmi-audio-rx: specifies if HDMI audio support is enabled or not.
944 - qcom,ext-ult-spk-amp-gpio : GPIO for enabling of speaker path amplifier.
945 
946 - qcom,ext-ult-lo-amp-gpio: GPIO to enable external ultrasound lineout
947 			    amplifier.
948 
949 - qcom,headset-jack-type-NO: Adjust GPIO level based on the headset jack type.
950 - qcom,tapan-codec-9302: Indicates that this device node is for WCD9302 audio
951 			    codec.
952 - qcom,mbhc-bias-internal: Flag to indicate if internal micbias should be used
953 			   for headset detection.
954 - qcom,dock-plug-det-irq: Interrupt line to detect Docking/Undocking of Liquid
955 			  device
956 - qcom,ext-spk-rear-panel-irq: Interrupt line to detect rear panel speakers
957               jack for Dragon Board.
958- qcom,ext-spk-front-panel-irq: Interrupt line to detect front panel speakers
959              jack for Dragon Board.
960- qcom,ext-mic-front-panel-irq: Interrupt line to detect front panel microphone
961              jack for Dragon Board.
962- qcom,mbhc-audio-jack-type : String to indicate the jack type on the hardware.
963		Possible Values:
964		4-pole-jack : Jack on the hardware is 4-pole.
965		5-pole-jack : Jack on the hardware is 5-pole.
966		6-pole-jack : Jack on the hardware is 6-pole.
967
968* APQ8074 ASoC Machine driver
969
970Required properties:
971- compatible : "qcom,apq8074-audio-taiko"
972
973Example:
974
975sound {
976	compatible = "qcom,msm8974-audio-taiko";
977	qcom,model = "msm8974-taiko-snd-card";
978
979	qcom,audio-routing =
980		"RX_BIAS", "MCLK",
981		"LDO_H", "MCLK",
982		"HEADPHONE", "LDO_H",
983		"Ext Spk Bottom Pos", "LINEOUT1",
984		"Ext Spk Bottom Neg", "LINEOUT3",
985		"Ext Spk Top Pos", "LINEOUT2",
986		"Ext Spk Top Neg", "LINEOUT4",
987		"AMIC1", "MIC BIAS1 Internal1",
988		"MIC BIAS1 Internal1", "Handset Mic",
989		"AMIC2", "MIC BIAS2 External",
990		"MIC BIAS2 External", "Headset Mic",
991		"AMIC3", "MIC BIAS3 Internal1",
992 		"MIC BIAS3 Internal1", "ANCRight Headset Mic",
993 		"AMIC4", "MIC BIAS1 Internal2",
994 		"MIC BIAS1 Internal2", "ANCLeft Headset Mic",
995 		"DMIC1", "MIC BIAS1 External",
996 		"MIC BIAS1 External", "Digital Mic1",
997 		"DMIC2", "MIC BIAS1 External",
998 		"MIC BIAS1 External", "Digital Mic2",
999 		"DMIC3", "MIC BIAS3 External",
1000 		"MIC BIAS3 External", "Digital Mic3",
1001 		"DMIC4", "MIC BIAS3 External",
1002 		"MIC BIAS3 External", "Digital Mic4",
1003 		"DMIC5", "MIC BIAS4 External",
1004 		"MIC BIAS4 External", "Digital Mic5",
1005 		"DMIC6", "MIC BIAS4 External",
1006 		"MIC BIAS4 External", "Digital Mic6";
1007 
1008 	qcom,cdc-mclk-gpios = <&pm8941_gpios 15 0>;
1009 	qcom,taiko-mclk-clk-freq = <9600000>;
1010 	qcom,us-euro-gpios = <&pm8941_gpios 20 0>;
1011 
1012 	qcom,hdmi-audio-rx;
1013 	qcom,ext-ult-lo-amp-gpio = <&pm8941_gpios 6 0>;
1014 
1015 	qcom,ext-mclk-gpio  = <&msmgpio 47 0>;
1016 	qcom,dock-plug-det-irq = <&pm8841_mpps 2 0>;
1017 	qcom,prim-auxpcm-gpio-clk  = <&msmgpio 65 0>;
1018 	qcom,prim-auxpcm-gpio-sync = <&msmgpio 66 0>;
1019 	qcom,prim-auxpcm-gpio-din  = <&msmgpio 67 0>;
1020 	qcom,prim-auxpcm-gpio-dout = <&msmgpio 68 0>;
1021 	qcom,prim-auxpcm-gpio-set = "prim-gpio-prim";
1022 	qcom,sec-auxpcm-gpio-clk  = <&msmgpio 79 0>;
1023 	qcom,sec-auxpcm-gpio-sync = <&msmgpio 80 0>;
1024 	qcom,sec-auxpcm-gpio-din  = <&msmgpio 81 0>;
1025 	qcom,sec-auxpcm-gpio-dout = <&msmgpio 82 0>;
1026 	qcom,mbhc-audio-jack-type = "4-pole-jack";
1027 };
1028 
1029 * msm-dai-mi2s
1030 
1031 [First Level Nodes]
1032 
1033 Required properties:
1034 
1035  - compatible : "msm-dai-mi2s"
1036 
1037  [Second Level Nodes]
1038 
1039 Required properties:
1040 
1041  - compatible : "qcom,msm-dai-q6-mi2s"
1042  - qcom,msm-dai-q6-mi2s-dev-id: MSM or MDM can use Slimbus or I2S interface to
1043 				transfer data to (WCD9XXX) codec.
1044 				If slimbus interface is used then "msm-dai-q6"
1045 				needs to be filled with correct data for
1046 				slimbus interface.
1047 				The sections "msm-dai-mi2s" is used by MDM or
1048 				MSM to use I2S interface with codec.
1049 				This section is used by CPU driver in ASOC MSM
1050 				to configure MI2S interface. MSM internally
1051 				has multiple MI2S namely Primary, Secondary,
1052 				Tertiary and Quaternary MI2S.
1053 				They are represented with id 0, 1, 2, 3
1054 				respectively.
1055 				The field "qcom,msm-dai-q6-mi2s-dev-id"
1056 				represents which of the MI2S block is used.
1057 				These MI2S are connected to I2S interface.
1058 
1059  - qcom,msm-mi2s-rx-lines:	Each MI2S interface in MSM has one or more SD
1060 				lines. These lines are used for data transfer
1061 				between codec and MSM.
1062 				This element in indicates which output RX lines
1063 				are used in the MI2S interface.
1064 
1065  - qcom,msm-mi2s-tx-lines:  	Each MI2S interface in MSM has one or more SD
1066 				lines. These lines are used for data transfer
1067 				between codec and MSM.
1068 				This element in indicates which input TX lines
1069 				are used in the MI2S interface.
1070 
1071 Optional properties:
1072 
1073 - pinctrl-names:		Pinctrl state names for each pin group
1074 				configuration.
1075 - pinctrl-x: 			Defines pinctrl state for each pin group
1076 
1077 Example:
1078 
1079 qcom,msm-dai-mi2s {
1080 		compatible = "qcom,msm-dai-mi2s";
1081 		qcom,msm-dai-q6-mi2s-prim {
1082 			compatible = "qcom,msm-dai-q6-mi2s";
1083 			qcom,msm-dai-q6-mi2s-dev-id = <0>;
1084 			qcom,msm-mi2s-rx-lines = <2>;
1085 			qcom,msm-mi2s-tx-lines = <1>;
1086 			pinctrl-names = "default", "idle";
1087 			pinctrl-0 = <&tert_mi2s_active &tert_mi2s_sd0_active>;
1088 			pinctrl-1 = <&tert_mi2s_sleep &tert_mi2s_sd0_sleep>;
1089 		};
1090 };
1091 
1092 * msm-adsp-loader
1093 
1094 Required properties:
1095  - compatible : "qcom,adsp-loader"
1096  - qcom,adsp-state:
1097 	It is possible that some MSM use PIL to load the ADSP image. While
1098 	other MSM may use SBL to load the ADSP image at boot. Audio APR needs
1099 	state of ADSP to register and enable APR to be used for sending commands
1100 	to ADSP. so adsp-state represents the state of ADSP to ADSP loader.
1101 	Value of 0 indicates ADSP loader needs to use PIL and value of 2 means
1102 	ADSP image is already loaded by SBL.
1103 
1104 Optional properties:
1105  - qcom,proc-img-to-load;
1106 	This property can be used to override default ADSP
1107 	loading by PIL. Based on string input, different proc is
1108 	loaded. Right now we are adding option "modem"
1109 	for 8916 purpose. Default image will be "adsp" which
1110 	will load LPASS Q6 for other targets as expected.
1111 	"adsp" option need not be explicitly mentioned in
1112 	DTSI file, as it is default option.
1113 
1114 Example:
1115 
1116 qcom,msm-adsp-loader {
1117 	compatible = "qcom,adsp-loader";
1118 	qcom,adsp-state = <2>;
1119 	qcom,proc-img-to-load = "modem";
1120 };
1121 
1122 * msm-audio-ion
1123 
1124 Required properties:
1125  - compatible : "qcom,msm-audio-ion"
1126 
1127 Optional properties:
1128  - qcom,smmu-version:
1129 	version ID to provide info regarding smmu version
1130 	used in chipset. If ARM SMMU HW - use id value as 1,
1131 	If QSMMU HW - use id value as 2.
1132 
1133  - qcom,smmu-sid-mask:
1134 	Mask for the Stream ID part of SMMU SID.
1135 
1136  - qcom,smmu-enabled:
1137         It is possible that some MSM have SMMU in ADSP.  While other MSM use
1138 	no SMMU. Audio lib introduce wrapper for ION APIs. The wrapper needs
1139         presence of SMMU in ADSP to handle ION APIs differently.
1140         Presence of this property means ADSP has SMMU in it.
1141  - iommus:
1142 	A phandle parsed by smmu driver. Number of entries will vary across
1143 	targets.
1144 
1145 Example:
1146 
1147qcom,msm-audio-ion {
1148	compatible = "qcom,msm-audio-ion;
1149	qcom,smmu-enabled;
1150};
1151
1152* msm-dai-tdm
1153
1154[First Level Nodes]
1155
1156Required properties:
1157
1158 - compatible : "qcom,msm-dai-tdm"
1159 - qcom,msm-cpudai-tdm-group-id: ID of the group device. TDM interface
1160				supports up to 8 groups:
1161				Primary RX: 	37120
1162				Primary TX: 	37121
1163 				Secondary RX: 	37136
1164 				Secondary TX: 	37137
1165 				Tertiary RX: 	37152
1166 				Tertiary TX: 	37153
1167 				Quaternary RX: 	37168
1168 				Quaternary TX: 	37169
1169 
1170  - qcom,msm-cpudai-tdm-group-num-ports:	Number of ports in
1171 				msm-cpudai-tdm-group-port-id array.
1172 				Max number of ports supported by DSP is 8.
1173 
1174  - qcom,msm-cpudai-tdm-group-port-id: Array of TDM port IDs of the group.
1175 				The size of the array is determined by
1176 				the value in msm-cpudai-tdm-group-num-ports.
1177 				Each group supports up to 8 ports:
1178 				Primary RX: 	36864, 36866, 36868, 36870,
1179 								36872, 36874, 36876, 36878
1180 				Primary TX: 	36865, 36867, 36869, 36871,
1181 								36873, 36875, 36877, 36879
1182 				Secondary RX: 	36880, 36882, 36884, 36886,
1183 								36888, 36890, 36892, 36894
1184 				Secondary TX:	36881, 36883, 36885, 36887,
1185 								36889, 36891, 36893, 36895
1186 				Tertiary RX: 	36896, 36898, 36900, 36902,
1187 								36904, 36906, 36908, 36910
1188 				Tertiary TX: 	36897, 36899, 36901, 36903,
1189 								36905, 36907, 36909, 36911
1190 				Quaternary RX:	36912, 36914, 36916, 36918,
1191 								36920, 36922, 36924, 36926
1192 				Quaternary TX:	36913, 36915, 36917, 36919,
1193 								36921, 36923, 36925, 36927
1194 
1195  - qcom,msm-cpudai-tdm-clk-rate: Clock rate for tdm - 12288000.
1196				When clock rate is set to zero,
1197				then external clock is assumed.
1198
1199 - qcom,msm-cpudai-tdm-afe-ebit-unsupported: Notify if ebit
1200				setting is needed.When this is
1201				set, along with clock rate as
1202				zero, then afe is not configured
1203				for clock.
1204
1205 - qcom,msm-cpudai-tdm-sec-port-enable: For chipsets with the
1206				limitation where we need to enable
1207				both RX and TX AFE ports, this flag
1208 				is used to enable TX/RX port for
1209 				RX/TX streams.
1210 
1211  - qcom,msm-cpudai-tdm-clk-internal: Clock Source.
1212 				0 - EBIT clock from clk tree
1213 				1 - IBIT clock from clk tree
1214 
1215  - qcom,msm-cpudai-tdm-sync-mode: Synchronization setting.
1216 				0 - Short sync bit mode
1217 				1 - Long sync mode
1218 				2 - Short sync slot mode
1219 
1220  - qcom,msm-cpudai-tdm-sync-src: Synchronization source.
1221 				0 - External source
1222 				1 - Internal source
1223 
1224  - qcom,msm-cpudai-tdm-data-out: Data out signal to drive with other masters.
1225 				0 - Disable
1226 				1 - Enable
1227 
1228  - qcom,msm-cpudai-tdm-invert-sync: Invert the sync.
1229 				0 - Normal
1230 				1 - Invert
1231 
1232  - qcom,msm-cpudai-tdm-data-delay: Number of bit clock to delay data
1233 				with respect to sync edge.
1234 				0 - 0 bit clock cycle
1235 				1 - 1 bit clock cycle
1236 				2 - 2 bit clock cycle
1237 
1238  [Second Level Nodes]
1239 
1240 Required properties:
1241 
1242  - compatible : "qcom,msm-dai-q6-tdm"
1243  - qcom,msm-dai-q6-mi2s-dev-id: TDM port ID.
1244 
1245  - qcom,msm-cpudai-tdm-data-align: Indicate how data is packed
1246 				within the slot. For example, 32 slot width in case of
1247 				sample bit width is 24.
1248 				0 - MSB
1249 				1 - LSB
1250 
1251 Optional properties:
1252 
1253  - qcom,msm-cpudai-tdm-header-start-offset: TDM Custom header start offset
1254 				in bytes from this sub-frame. The bytes is counted from 0.
1255 				0 is mapped to the 1st byte in or out of
1256 				the digital serial data line this sub-frame belong to.
1257 				Supported value: 0, 4, 8.
1258 
1259  - qcom,msm-cpudai-tdm-header-width: Header width per frame followed.
1260 				2 bytes for MOST/TDM case.
1261 				Supported value: 2.
1262 
1263  - qcom,msm-cpudai-tdm-header-num-frame-repeat: Number of header followed.
1264 				Supported value: 8.
1265 
1266 - pinctrl-names: Pinctrl state names for each pin group
1267				configuration.
1268
1269 - pinctrl-x: Defines pinctrl state for each pin group.
1270
1271Example:
1272
1273	qcom,msm-dai-tdm-quat-rx {
1274		compatible = "qcom,msm-dai-tdm";
1275		qcom,msm-cpudai-tdm-group-id = <37168>;
1276		qcom,msm-cpudai-tdm-group-num-ports = <1>;
1277		qcom,msm-cpudai-tdm-group-port-id = <36912>;
1278		qcom,msm-cpudai-tdm-clk-rate = <12288000>;
1279		qcom,msm-cpudai-tdm-clk-internal = <1>;
1280		qcom,msm-cpudai-tdm-sync-mode = <0>;
1281		qcom,msm-cpudai-tdm-sync-src = <1>;
1282		qcom,msm-cpudai-tdm-data-out = <0>;
1283		qcom,msm-cpudai-tdm-invert-sync = <0>;
1284		qcom,msm-cpudai-tdm-data-delay = <0>;
1285		pinctrl-names = "default", "sleep";
1286		pinctrl-0 = <&quat_tdm_active &quat_tdm_dout_active>;
1287		pinctrl-1 = <&quat_tdm_sleep &quat_tdm_dout_sleep>;
1288		dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
1289			compatible = "qcom,msm-dai-q6-tdm";
1290			qcom,msm-cpudai-tdm-dev-id = <36912>;
1291			qcom,msm-cpudai-tdm-data-align = <0>;
1292			qcom,msm-cpudai-tdm-header-start-offset = <0>;
1293			qcom,msm-cpudai-tdm-header-width = <2>;
1294			qcom,msm-cpudai-tdm-header-num-frame-repeat = <8>;
1295		};
1296	};
1297
1298* MSM8996 ASoC Machine driver
1299
1300Required properties:
1301- compatible : "qcom,msm8996-asoc-snd-tomtom" for tomtom codec and
1302		node is "sound" and "qcom,msm8996-asoc-snd-tasha"
1303		for tasha codec and node is "sound-9335"
1304- qcom,model : The user-visible name of this sound card.
1305- qcom,tomtom-mclk-clk-freq : MCLK frequency value for tomtom codec
1306 			      and node is "sound"
1307 - qcom,tasha-mclk-clk-freq : MCLK frequency value for tasha codec
1308 			     and node is "sound-9335"
1309 - qcom,audio-routing : A list of the connections between audio components.
1310 - asoc-platform: This is phandle list containing the references to platform device
1311 		 nodes that are used as part of the sound card dai-links.
1312 - asoc-platform-names: This property contains list of platform names. The order of
1313 		       the platform names should match to that of the phandle order
1314 		       given in "asoc-platform".
1315 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
1316 	    that are used as part of the sound card dai-links.
1317 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
1318 		  cpu dai names should match to that of the phandle order given
1319 		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
1320 		  where the id (%d) field represents the back-end AFE port id that
1321 		  this CPU dai is associated with.
1322 - asoc-codec: This is phandle list containing the references to codec dai device
1323 	      nodes that are used as part of the sound card dai-links.
1324 - asoc-codec-names: This property contains list of codec dai names. The order of the
1325 		    codec dai names should match to that of the phandle order given
1326 		    in "asoc-codec".
1327 Optional properties:
1328 - qcom,ext-ult-spk-amp-gpio : GPIO to enable ultrasound emitter amp.
1329 - qcom,mbhc-audio-jack-type : String to indicate the jack type on the hardware.
1330 		Possible Values:
1331 		4-pole-jack : Jack on the hardware is 4-pole.
1332 		5-pole-jack : Jack on the hardware is 5-pole.
1333 		6-pole-jack : Jack on the hardware is 6-pole.
1334 - clock-names : clock name defined for external clock.
1335 - clocks : external clock defined for codec clock.
1336 - qcom,hph-en1-gpio : GPIO to enable HiFi amplifiers.
1337 - qcom,hph-en0-gpio : GPIO to enable HiFi audio route to headset.
1338 - qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
1339- qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
1340- qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
1341
1342Example:
1343
1344	sound {
1345	compatible = "qcom,msm8996-asoc-snd";
1346	qcom,model = "msm8996-tomtom-snd-card";
1347
1348	qcom,audio-routing =
1349		"RX_BIAS", "MCLK",
1350		"LDO_H", "MCLK",
1351		"AIF4 MAD", "MCLK",
1352		"ultrasound amp", "LINEOUT1",
1353		"ultrasound amp", "LINEOUT3",
1354		"AMIC1", "MIC BIAS1 Internal1",
1355 		"MIC BIAS1 Internal1", "Handset Mic",
1356 		"AMIC2", "MIC BIAS2 External",
1357 		"MIC BIAS2 External", "Headset Mic",
1358 		"AMIC3", "MIC BIAS2 External",
1359 		"MIC BIAS2 External", "ANCRight Headset Mic",
1360 		"AMIC4", "MIC BIAS2 External",
1361 		"MIC BIAS2 External", "ANCLeft Headset Mic",
1362 		"DMIC1", "MIC BIAS1 External",
1363 		"MIC BIAS1 External", "Digital Mic1",
1364 		"DMIC2", "MIC BIAS1 External",
1365 		"MIC BIAS1 External", "Digital Mic2",
1366 		"DMIC3", "MIC BIAS3 External",
1367 		"MIC BIAS3 External", "Digital Mic3",
1368 		"DMIC4", "MIC BIAS3 External",
1369 		"MIC BIAS3 External", "Digital Mic4",
1370 		"DMIC5", "MIC BIAS4 External",
1371 		"MIC BIAS4 External", "Digital Mic5",
1372 		"DMIC6", "MIC BIAS4 External",
1373 		"MIC BIAS4 External", "Digital Mic6";
1374 
1375 	clock-names = "osr_clk";
1376 	clocks = <&clock_rpm clk_div_clk1>;
1377 	qcom,mbhc-audio-jack-type = "6-pole-jack";
1378 		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
1379 				<&loopback>, <&compress>, <&hostless>,
1380 				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>, <&cpe3>;
1381 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", "msm-pcm-dsp.2",
1382 				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
1383 				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
1384 				"msm-lsm-client", "msm-pcm-routing", "msm-cpe-lsm",
1385 				"msm-compr-dsp", "msm-cpe-lsm.3";
1386 		asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>, <&dai_mi2s>,
1387 				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
1388				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
1389				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>, <&afe_pcm_rx>,
1390				<&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
1391				<&incall_record_rx>, <&incall_record_tx>,
1392 				<&incall_music_rx>, <&incall_music2_rx>;
1393 		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
1394 				"msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.2",
1395 				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
1396 				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
1397 				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
1398 				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
1399 				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
1400 				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
1401 				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
1402 				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
1403 				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
1404 				"msm-dai-q6-dev.32770";
1405 		asoc-codec = <&stub_codec>;
1406 		asoc-codec-names = "msm-stub-codec.1";
1407 		qcom,wsa-max-devs = <2>;
1408 		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
1409 				<&wsa881x_213>, <&wsa881x_214>;
1410 		qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
1411 					  "SpkrRight", "SpkrLeft";
1412 	};
1413 
1414 * MSM8909 ASoC Machine driver
1415 
1416 Required properties:
1417 - compatible : "qcom,msm8909-audio-codec"
1418 - qcom,model : The user-visible name of this sound card.
1419 - reg : Offset and length of the register region(s) for MI2S/PCM MUX
1420 - reg-names : Register region name(s) referenced in reg above
1421 	 Required register resource entries are:
1422 	 "csr_gp_io_mux_mic_ctl": Physical address of MUX that controls
1423 				controls LPA IF tertiary, quad, PCM0, Digital Codec
1424 				and Secondary TLMM mux setting for mic path operation.
1425 	 "csr_gp_io_mux_spkr_ctl": Physical address of MUX that controls
1426 				IF primary, secondary, Digital Codec and Primary TLMM
1427 				setting for speaker path operation.
1428 	 "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel": Physical address of MUX
1429 				that controls the mux between LPA IF Quad and PCM0
1430 				path to secondary TLMM
1431 - qcom,msm-hs-micbias-type : This property is used to recognize the headset
1432   micbias type, internal or external.
1433 - qcom,msm-ext-pa : This property is used to inform machine driver about
1434   the connection of external PA over available MI2S interfaces,
1435   following values can be given to this property.
1436   primary -> Primary MI2S interface
1437   secondary -> Secondary MI2S interface
1438   tertiary -> Tertiary MI2S interface
1439   quaternary -> Quaternary MI2S interface
1440- qcom,msm-mbhc-hphl-swh: This property is used to distinguish headset HPHL
1441switch type on target typically the switch type will be normally open or
1442normally close, value for this property 0 for normally close and 1 for
1443normally open.
1444-  qcom,msm-mbhc-gnd-swh: This property is used to distinguish headset GND
1445switch type on target typically the switch type will be normally open or
1446normally close, value for this property 0 for normally close and 1 for
1447normally open.
1448- qcom,audio-routing : A list of the connections between audio components.
1449- qcom,msm-gpios : Lists down all the gpio sets that are supported.
1450- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
1451mentioned in qcom,msm-gpios.
1452- pinctrl-names : The combinations of gpio sets from above that are supported in
1453the flavor.
1454- pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
1455
1456Optional properties:
1457- qcom,msm-afe-clk-ver: Provides detail of AFE clock API version.
1458- qcom,hdmi-dba-codec-rx: Boolean. specifies if HDMI DBA audio support is enabled or not.
1459- qcom,split-a2dp: Boolean. specifies if split a2dp audio support is enabled or not.
1460- qcom,prim-auxpcm-gpio-clk  : GPIO on which Primary AUXPCM clk signal is coming.
1461- qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming.
1462- qcom,prim-auxpcm-gpio-din  : GPIO on which Primary AUXPCM DIN signal is coming.
1463- qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming.
1464- qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port
1465- qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
1466- qcom,msm-micbias1-ext-cap : Boolean. Enable micbias1 external
1467capacitor mode.
1468- qcom,msm-micbias2-ext-cap : Boolean. Enable micbias2 external
1469 capacitor mode.
1470 - qcom,msm-spk-ext-pa : GPIO which enables external speaker pa.
1471 - qcom,subsys-name: This value provides the subsystem name where codec
1472 		is present. This property enables the codec driver to
1473 		register and receive subsytem restart notification from subsystem
1474 		and follow appropriate steps to ensure codec is in proper state
1475 		after subsytem restart. By default codec driver register
1476 		with ADSP subsystem.
1477 
1478 To Configure External Audio Switch
1479 - qcom,msm-ext-audio-switch : GPIO which controls external switch that switches
1480   audio path between headset and speakers.
1481 - ext-switch-vdd-supply : Power supply that control external audio switch
1482 - qcom,ext-switch-vdd-voltage : Minimum and maximum voltage in uV to set for
1483   power supply.
1484 - qcom,ext-switch-vdd-op-mode : Maxmum # of uA current the switch will draw
1485   from the power supply.
1486 Example:
1487 	qcom,msm-ext-audio-switch = <&msm_gpio 2 0>; - gpio # and active_state
1488 	ext-switch-vdd-supply = <&pm8950_l13>; - Power Rail
1489 	qcom,ext-switch-vdd-voltage = <3075000 3075000>; - Min, Max uV voltage
1490 	qcom,ext-switch-vdd-op-mode = <5000>; - Operational current uA
1491 	Additional needs to add two additional qcom,audio-routings
1492 			"HEADPHONE", "VDD_EXT_AUDIO_SWITCH"
1493 			"SPK_OUT", "VDD_EXT_AUDIO_SWITCH"
1494 
1495 - qcom,msm-mclk-freq : This property is used to inform machine driver about
1496 mclk frequency needs to be configured for internal and external PA.
1497 - asoc-platform: This is phandle list containing the references to platform device
1498 		 nodes that are used as part of the sound card dai-links.
1499 - asoc-platform-names: This property contains list of platform names. The order of
1500 		       the platform names should match to that of the phandle order
1501 		       given in "asoc-platform".
1502- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
1503	    that are used as part of the sound card dai-links.
1504- asoc-cpu-names: This property contains list of cpu dai names. The order of the
1505		  cpu dai names should match to that of the phandle order given.
1506- asoc-codec: This is phandle list containing the references to codec dai device
1507 	nodes that are used as part of the sound card dai-links.
1508 - asoc-codec-names: This property contains list of codec dai names. The order of the
1509 	codec dai names should match to that of the phandle order given
1510 	in "asoc-codec".
1511 - asoc-wsa-codec-names: This property contains list of wsa codec names. The names
1512 		  should comply with the wsa nodes configurations.
1513 - asoc-wsa-codec-prefixes: This property contains list of wsa codec prefixes.
1514 - msm-vdd-wsa-switch-supply: WSA codec supply's regulator device tree node.
1515 - qcom,msm-vdd-wsa-switch-voltage: WSA codec supply's voltage level in mV.
1516 - qcom,msm-vdd-wsa-switch-current: WSA codec max current level in mA.
1517 
1518 Example:
1519 	 sound {
1520 		compatible = "qcom,msm8909-audio-codec";
1521 		qcom,model = "msm8909-snd-card";
1522 		reg = <0xc051000 0x4>,
1523 		      <0xc051004 0x4>,
1524 		      <0xc055000 0x4>;
1525 		reg-names = "csr_gp_io_mux_mic_ctl",
1526 			    "csr_gp_io_mux_spkr_ctl",
1527 			    "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel";
1528 		qcom,msm-afe-clk-ver = <1>;
1529 		qcom,msm-ext-pa = "primary";
1530 		qcom,hdmi-dba-codec-rx;
1531 		qcom,split-a2dp;
1532 		qcom,msm-mclk-freq = <9600000>;
1533 		qcom,msm-mbhc-hphl-swh = <0>;
1534 		qcom,msm-mbhc-gnd-swh = <0>;
1535 		qcom,msm-hs-micbias-type = "internal";
1536 		qcom,msm-micbias1-ext-cap;
1537 		qcom,audio-routing =
1538 			"RX_BIAS", "MCLK",
1539 			"SPK_RX_BIAS", "MCLK",
1540			"INT_LDO_H", "MCLK",
1541			"MIC BIAS External", "Handset Mic",
1542			"MIC BIAS Internal2", "Headset Mic",
1543			"MIC BIAS External", "Secondary Mic",
1544			"AMIC1", "MIC BIAS External",
1545			"AMIC2", "MIC BIAS Internal2",
1546			"AMIC3", "MIC BIAS External";
1547		qcom,msm-gpios =
1548			"pri_i2s",
1549			"us_eu_gpio";
1550		qcom,pinctrl-names =
1551 			"all_off",
1552 			"pri_i2s_act",
1553 			"us_eu_gpio_act",
1554 			"pri_i2s_us_eu_gpio_act";
1555 		pinctrl-names =
1556 			"all_off",
1557 			"pri_i2s_act",
1558 			"us_eu_gpio_act",
1559 			"pri_i2s_us_eu_gpio_act";
1560 		pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &cross_conn_det_sus>;
1561 		pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &cross_conn_det_sus>;
1562 		pinctrl-2 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &cross_conn_det_act>;
1563 		pinctrl-3 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &cross_conn_det_act>;
1564 		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
1565 		qcom,prim-auxpcm-gpio-clk  = <&msm_gpio 63 0>;
1566 		qcom,prim-auxpcm-gpio-sync = <&msm_gpio 64 0>;
1567 		qcom,prim-auxpcm-gpio-din  = <&msm_gpio 65 0>;
1568 		qcom,prim-auxpcm-gpio-dout = <&msm_gpio 66 0>;
1569 		qcom,prim-auxpcm-gpio-set = "prim-gpio-prim";
1570 		qcom,tapan-codec-9302;
1571 		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
1572 				<&loopback>, <&compress>, <&hostless>,
1573 				<&afe>, <&lsm>, <&routing>, <&lpa>;
1574 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
1575 				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
1576 				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
1577 				"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa";
1578 		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
1579 				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
1580 				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
1581 				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
1582 				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
1583 				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
1584 				<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
1585 				<&incall_music_2_rx>;
1586 		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
1587 				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
1588 				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
1589 				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
1590 				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
1591 				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
1592 				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
1593 				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
1594 				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
1595 				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
1596 				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
1597 				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
1598 				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
1599 		asoc-codec = <&stub>, <&pm8916_tombak_dig>;
1600 		asoc-codec-names = "msm-stub-codec.1", "tombak_codec";
1601 		asoc-wsa-codec-names = "wsa881x-i2c-codec.8-000f";
1602 		asoc-wsa-codec-prefixes = "SpkrMono";
1603 	};
1604 
1605 * MSM8952 ASoC Machine driver
1606 
1607 Required properties:
1608 - compatible : "qcom,msm8952-audio-codec" for pmic codec,
1609 				"qcom,msm8952-dig-asoc-snd" for digital internal codec,
1610 - qcom,model : The user-visible name of this sound card.
1611 - reg : Offset and length of the register region(s) for MI2S/PCM MUX
1612 - reg-names : Register region name(s) referenced in reg above
1613 	 Required register resource entries are:
1614 	 "csr_gp_io_mux_mic_ctl": Physical address of MUX that controls
1615 				controls LPA IF tertiary, quad, PCM0, Digital Codec
1616 				and Secondary TLMM mux setting for mic path operation.
1617 	 "csr_gp_io_mux_spkr_ctl": Physical address of MUX that controls
1618 				IF primary, secondary, Digital Codec and Primary TLMM
1619 				setting for speaker path operation.
1620 	 "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel": Physical address of MUX
1621 				that controls the mux between LPA IF Quad and PCM0
1622 				path to secondary TLMM
1623 - qcom,msm-hs-micbias-type : This property is used to recognize the headset
1624   micbias type, internal or external.
1625 - qcom,msm-ext-pa : This property is used to inform machine driver about
1626   the connection of external PA over available MI2S interfaces,
1627   following values can be given to this property.
1628   primary -> Primary MI2S interface
1629   secondary -> Secondary MI2S interface
1630   tertiary -> Tertiary MI2S interface
1631   quaternary -> Quaternary MI2S interface
1632 - qcom,msm-mbhc-hphl-swh: This property is used to distinguish headset HPHL
1633 switch type on target typically the switch type will be normally open or
1634 normally close, value for this property 0 for normally close and 1 for
1635 normally open.
1636 -  qcom,msm-mbhc-gnd-swh: This property is used to distinguish headset GND
1637 switch type on target typically the switch type will be normally open or
1638 normally close, value for this property 0 for normally close and 1 for
1639 normally open.
1640 - qcom,audio-routing : A list of the connections between audio components.
1641 - qcom,msm-gpios : Lists down all the gpio sets that are supported.
1642 - qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
1643 mentioned in qcom,msm-gpios.
1644 - pinctrl-names : The combinations of gpio sets from above that are supported in
1645 the flavor.
1646 - pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
1647 
1648 Optional properties:
1649 - qcom,prim-auxpcm-gpio-clk  : GPIO on which Primary AUXPCM clk signal is coming.
1650 - qcom,prim-auxpcm-gpio-sync : GPIO on which Primary AUXPCM SYNC signal is coming.
1651 - qcom,prim-auxpcm-gpio-din  : GPIO on which Primary AUXPCM DIN signal is coming.
1652 - qcom,prim-auxpcm-gpio-dout : GPIO on which Primary AUXPCM DOUT signal is coming.
1653 - qcom,prim-auxpcm-gpio-set : set of GPIO lines used for Primary AUXPCM port
1654 - qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
1655 - qcom,msm-micbias1-ext-cap : Boolean. Enable micbias1 external
1656 capacitor mode.
1657 - qcom,msm-micbias2-ext-cap : Boolean. Enable micbias2 external
1658 capacitor mode.
1659 - qcom,msm-spk-ext-pa : GPIO which enables external speaker pa.
1660 
1661 To Configure External Audio Switch
1662 - qcom,msm-ext-audio-switch : GPIO which controls external switch that switches
1663   audio path between headset and speakers.
1664 - ext-switch-vdd-supply : Power supply that control external audio switch
1665 - qcom,ext-switch-vdd-voltage : Minimum and maximum voltage in uV to set for
1666   power supply.
1667 - qcom,ext-switch-vdd-op-mode : Maxmum # of uA current the switch will draw
1668   from the power supply.
1669 Example:
1670 	qcom,msm-ext-audio-switch = <&msm_gpio 2 0>; - gpio # and active_state
1671 	ext-switch-vdd-supply = <&pm8950_l13>; - Power Rail
1672 	qcom,ext-switch-vdd-voltage = <3075000 3075000>; - Min, Max uV voltage
1673 	qcom,ext-switch-vdd-op-mode = <5000>; - Operational current uA
1674 	Additional needs to add two additional qcom,audio-routings
1675 			"HEADPHONE", "VDD_EXT_AUDIO_SWITCH"
1676 			"SPK_OUT", "VDD_EXT_AUDIO_SWITCH"
1677 
1678 - qcom,msm-mclk-freq : This property is used to inform machine driver about
1679 mclk frequency needs to be configured for internal and external PA.
1680 - asoc-platform: This is phandle list containing the references to platform device
1681 		 nodes that are used as part of the sound card dai-links.
1682 - asoc-platform-names: This property contains list of platform names. The order of
1683 		       the platform names should match to that of the phandle order
1684 		       given in "asoc-platform".
1685 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
1686 	    that are used as part of the sound card dai-links.
1687 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
1688 		  cpu dai names should match to that of the phandle order given.
1689 - asoc-codec: This is phandle list containing the references to codec dai device
1690 	nodes that are used as part of the sound card dai-links.
1691 - asoc-codec-names: This property contains list of codec dai names. The order of the
1692 	codec dai names should match to that of the phandle order given
1693 	in "asoc-codec".
1694 - asoc-wsa-codec-names: This property contains list of wsa codec names. The names
1695 		  should comply with the wsa nodes configurations.
1696 - asoc-wsa-codec-prefixes: This property contains list of wsa codec prefixes.
1697 - msm-vdd-wsa-switch-supply: WSA codec supply's regulator device tree node.
1698 - qcom,msm-vdd-wsa-switch-voltage: WSA codec supply's voltage level in mV.
1699 - qcom,msm-vdd-wsa-switch-current: WSA codec max current level in mA.
1700 
1701 Example:
1702 	 sound {
1703 		compatible = "qcom,msm8952-audio-codec";
1704 		qcom,model = "msm8952-snd-card";
1705 		reg = <0xc051000 0x4>,
1706 		      <0xc051004 0x4>,
1707 		      <0xc055000 0x4>;
1708 		reg-names = "csr_gp_io_mux_mic_ctl",
1709 			    "csr_gp_io_mux_spkr_ctl",
1710 			    "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel";
1711 		qcom,msm-ext-pa = "primary";
1712 		qcom,msm-mclk-freq = <9600000>;
1713 		qcom,msm-mbhc-hphl-swh = <0>;
1714 		qcom,msm-mbhc-gnd-swh = <0>;
1715 		qcom,msm-hs-micbias-type = "internal";
1716 		qcom,msm-micbias1-ext-cap;
1717 		qcom,audio-routing =
1718 			"RX_BIAS", "MCLK",
1719 			"SPK_RX_BIAS", "MCLK",
1720 			"INT_LDO_H", "MCLK",
1721 			"MIC BIAS External", "Handset Mic",
1722 			"MIC BIAS Internal2", "Headset Mic",
1723 			"MIC BIAS External", "Secondary Mic",
1724 			"AMIC1", "MIC BIAS External",
1725 			"AMIC2", "MIC BIAS Internal2",
1726 			"AMIC3", "MIC BIAS External";
1727 		qcom,msm-gpios =
1728 			"pri_i2s",
1729 			"us_eu_gpio";
1730 		qcom,pinctrl-names =
1731 			"all_off",
1732 			"pri_i2s_act",
1733 			"us_eu_gpio_act",
1734 			"pri_i2s_us_eu_gpio_act";
1735 		pinctrl-names =
1736 			"all_off",
1737 			"pri_i2s_act",
1738 			"us_eu_gpio_act",
1739 			"pri_i2s_us_eu_gpio_act";
1740 		pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &cross_conn_det_sus>;
1741 		pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &cross_conn_det_sus>;
1742 		pinctrl-2 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus &cross_conn_det_act>;
1743 		pinctrl-3 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act &cross_conn_det_act>;
1744 		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
1745 		qcom,prim-auxpcm-gpio-clk  = <&msm_gpio 63 0>;
1746 		qcom,prim-auxpcm-gpio-sync = <&msm_gpio 64 0>;
1747 		qcom,prim-auxpcm-gpio-din  = <&msm_gpio 65 0>;
1748 		qcom,prim-auxpcm-gpio-dout = <&msm_gpio 66 0>;
1749 		qcom,prim-auxpcm-gpio-set = "prim-gpio-prim";
1750 		qcom,tapan-codec-9302;
1751 		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
1752 				<&loopback>, <&compress>, <&hostless>,
1753 				<&afe>, <&lsm>, <&routing>, <&lpa>;
1754 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
1755 				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
1756 				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
1757 				"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa";
1758 		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
1759 				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
1760 				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
1761 				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
1762 				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
1763 				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
1764 				<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
1765 				<&incall_music_2_rx>;
1766 		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
1767 				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
1768 				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
1769 				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
1770 				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
1771 				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
1772 				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
1773 				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
1774 				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
1775 				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
1776 				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
1777 				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
1778 				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
1779 		asoc-codec = <&stub>, <&pm8916_tombak_dig>;
1780 		asoc-codec-names = "msm-stub-codec.1", "tombak_codec";
1781 		asoc-wsa-codec-names = "wsa881x-i2c-codec.8-000f";
1782 		asoc-wsa-codec-prefixes = "SpkrMono";
1783 	};
1784 
1785 * SDM660 ASoC Machine driver
1786 
1787 Required properties:
1788 - compatible : "qcom,sdm660-asoc-snd"
1789 - qcom,model : The user-visible name of this sound card.
1790 - qcom,msm-hs-micbias-type : This property is used to recognize the headset
1791   micbias type, internal or external.
1792 - qcom,msm-mbhc-hphl-swh: This property is used to distinguish headset HPHL
1793 switch type on target typically the switch type will be normally open or
1794 normally close, value for this property 0 for normally close and 1 for
1795 normally open.
1796 -  qcom,msm-mbhc-gnd-swh: This property is used to distinguish headset GND
1797 switch type on target typically the switch type will be normally open or
1798 normally close, value for this property 0 for normally close and 1 for
1799 normally open.
1800 - qcom,audio-routing : A list of the connections between audio components.
1801 - qcom,msm-gpios : Lists down all the gpio sets that are supported.
1802 - qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
1803 mentioned in qcom,msm-gpios.
1804 - pinctrl-names : The combinations of gpio sets from above that are supported in
1805 the flavor.
1806 - pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
1807 
1808 Optional properties:
1809 - qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
1810 - qcom,msm-micbias1-ext-cap : Boolean. Enable micbias1 external
1811 capacitor mode.
1812 - qcom,msm-micbias2-ext-cap : Boolean. Enable micbias2 external
1813 capacitor mode.
1814 - qcom,wsa-disable : Boolean. Disables WSA speaker dailinks from sound node.
1815 - qcom,msm-spk-ext-pa : GPIO which enables external speaker pa.
1816 - qcom,msm-mclk-freq : This property is used to inform machine driver about
1817 mclk frequency needs to be configured for internal and external PA.
1818 - asoc-platform: This is phandle list containing the references to platform device
1819 		 nodes that are used as part of the sound card dai-links.
1820 - asoc-platform-names: This property contains list of platform names. The order of
1821 		       the platform names should match to that of the phandle order
1822 		       given in "asoc-platform".
1823 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
1824 	    that are used as part of the sound card dai-links.
1825 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
1826 		  cpu dai names should match to that of the phandle order given.
1827 - asoc-codec: This is phandle list containing the references to codec dai device
1828 	nodes that are used as part of the sound card dai-links.
1829 - asoc-codec-names: This property contains list of codec dai names. The order of the
1830 	codec dai names should match to that of the phandle order given
1831	in "asoc-codec".
1832- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
1833- qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
1834- qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
1835- qcom,cdc-pdm-gpios : phandle for pdm gpios.
1836- qcom,cdc-comp-gpios : phandle for compander gpios.
1837- qcom,cdc-dmic-gpios : phandle for Digital mic clk and data gpios.
1838- qcom,cdc-sdw-gpios : phandle for soundwire clk and data gpios.
1839- qcom,msm-mbhc-moist-cfg: This property is used to set moisture detection
1840		threshold values for different codecs. First parameter is V(voltage)
1841		second one is i(current), third one is r (resistance). Depending on the
1842		codec set corresponding element in array and set others to 0.
1843- qcom,msm-linein-det-swh: This property is used to distinguish linein jack
1844	switch type on target typically the switch type will be normally open or
1845	normally close, value for this property 0 for normally close and 1 for
1846	normally open.
1847- qcom,msm-lineout-det-swh: This property is used to distinguish lineout jack
1848	switch type on target typically the switch type will be normally open or
1849	normally close, value for this property 0 for normally close and 1 for
1850	normally open.
1851- qcom,linein-det-gpio : GPIO on which linein jack insertion/removal interrupt is received.
1852- qcom,lineout-det-gpio : GPIO on which lineout jack insertion/removal interrupt is received.
1853
1854Example:
1855	 sound {
1856		compatible = "qcom,sdm660-asoc-snd";
1857		qcom,model = "sdm660-snd-card";
1858		qcom,msm-mclk-freq = <9600000>;
1859		qcom,msm-mbhc-hphl-swh = <0>;
1860		qcom,msm-mbhc-gnd-swh = <0>;
1861		qcom,msm-hs-micbias-type = "internal";
1862		qcom,msm-micbias1-ext-cap;
1863		qcom,audio-routing =
1864			"RX_BIAS", "MCLK",
1865			"SPK_RX_BIAS", "MCLK",
1866			"INT_LDO_H", "MCLK",
1867			"MIC BIAS External", "Handset Mic",
1868			"MIC BIAS Internal2", "Headset Mic",
1869			"MIC BIAS External", "Secondary Mic",
1870			"AMIC1", "MIC BIAS External",
1871			"AMIC2", "MIC BIAS Internal2",
1872			"AMIC3", "MIC BIAS External";
1873		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
1874		qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
1875		qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
1876		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
1877		qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;
1878		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
1879				<&loopback>, <&compress>, <&hostless>,
1880				<&afe>, <&lsm>, <&routing>, <&lpa>;
1881		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
1882				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
1883				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
1884				"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa";
1885		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
1886				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
1887				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
1888				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
1889				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
1890				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
1891				<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
1892				<&incall_music_2_rx>;
1893		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
1894				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
1895				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
1896				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
1897				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
1898				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
1899				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
1900				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
1901				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
1902				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
1903				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
1904 				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
1905 				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
1906 		asoc-codec = <&stub_codec>;
1907 		asoc-codec-names = "msm-stub-codec.1";
1908 		qcom,wsa-max-devs = <2>;
1909 		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
1910 				<&wsa881x_213>, <&wsa881x_214>;
1911 		qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
1912 					  "SpkrRight", "SpkrLeft";
1913 		qcom,linein-det-swh = <1>;
1914 		qcom,lineout-det-swh = <1>;
1915 		qcom,linein-det-gpio = <&tlmm 124 0>;
1916 		qcom,lineout-det-gpio = <&tlmm 125 0>;
1917 	};
1918 
1919 * MSM8952 Slimbus ASoC Machine driver
1920 
1921 Required properties:
1922 - compatible : "qcom,msm8952-audio-slimbus-codec"
1923 - qcom,model : The user-visible name of this sound card.
1924 - qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
1925 mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs,
1926 this would list all the 2^N combinations.
1927 - pinctrl-names : The combinations of gpio sets from above that are supported in
1928 the flavor. This can be sometimes same as qcom, pinctrl-names i.e with 2^N
1929 combinations or will have less incase if some combination is not supported.
1930 - pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
1931 - reg : Offset and length of the register region(s) for MI2S/PCM MUX
1932 - reg-names : Register region name(s) referenced in reg above
1933 	 Required register resource entries are:
1934 	 "csr_gp_io_mux_mic_ctl": Physical address of MUX that controls
1935 				controls LPA IF tertiary, quad, PCM0, Digital Codec
1936 				and Secondary TLMM mux setting for mic path operation.
1937	 "csr_gp_io_mux_spkr_ctl": Physical address of MUX that controls
1938				IF primary, secondary, Digital Codec and Primary TLMM
1939				setting for speaker path operation.
1940- qcom,cdc-mclk-gpios : GPIO on which mclk signal is coming.
1941- clock-names : clock name defined for external clock.
1942- qcom,audio-routing : A list of the connections between audio components.
1943  Each entry is a pair of strings, the first being the connection's sink,
1944  the second being the connection's source.
1945
1946Optional Properties:
1947- qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
1948- qcom,cdc-vdd-spkr-gpios : GPIO which controls PA for VDD speaker
1949- qcom,headset-jack-type-NC: Set if the headset jack type is NC (Normally Closed)
1950- qcom,tomtom-mclk-clk-freq : Tapan mclk Freq in Hz. currently only 9600000Hz
1951				is supported.
1952- qcom,msm-ext-pa : This property is used to inform machine driver about
1953  the connection of external PA over available MI2S interfaces,
1954  following values can be given to this property.
1955  primary -> Primary MI2S interface
1956  secondary -> Secondary MI2S interface
1957  tertiary -> Tertiary MI2S interface
1958  quaternary -> Quaternary MI2S interface
1959- qcom,mi2s-audio-intf: This property is used to inform machine driver
1960  if mi2s backend dailink has to be added as part of the sound card dai-links.
1961- qcom,auxpcm-audio-intf: This property is used to inform machine driver
1962  if auxpcm backend dailink has to be added as part of the sound card dai-links.
1963- qcom,msm-mi2s-master: This property is used to inform machine driver
1964  if MSM is the clock master of mi2s. 1 means master and 0 means slave. The
1965  first entry is primary mi2s; the second entry is secondary mi2s, and so on.
1966- qcom,mi2s-aqt-enabled: This property is used to inform machine driver
1967  if AQT1000 codec is enabled or not. If this is enabled then codec name
1968  for TERT_MI2S needs to be overridden with AQT codec.
1969- qcom,msm-mi2s-ext-mclk: This property is used to inform machine driver
1970  if MCLK from MSM is used for any external audio connections. 1 means used
1971  as external mclk source and 0 indicate not used. The first entry is
1972  primary mclk; the second entry is secondary mclk, and so on.
1973- reg: This property provides the AUX PCM/MI2S mux select register addresses
1974  and size.
1975- reg_names: This property provides the name of the AUX PCM/MI2S mux select
1976  registers so the machine driver can retrieve the addresses. The order of the
1977  names has to match the order of the registers in "reg" property.
1978- asoc-platform: This is phandle list containing the references to platform device
1979		 nodes that are used as part of the sound card dai-links.
1980- asoc-platform-names: This property contains list of platform names. The order of
1981		       the platform names should match to that of the phandle order
1982		       given in "asoc-platform".
1983- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
1984	    that are used as part of the sound card dai-links.
1985- asoc-cpu-names: This property contains list of cpu dai names. The order of the
1986		  cpu dai names should match to that of the phandle order given
1987		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
1988		  where the id (%d) field represents the back-end AFE port id that
1989		  this CPU dai is associated with.
1990- asoc-codec: This is phandle list containing the references to codec dai device
1991	      nodes that are used as part of the sound card dai-links.
1992- asoc-codec-names: This property contains list of codec dai names. The order of the
1993		    codec dai names should match to that of the phandle order given
1994		    in "asoc-codec".
1995- asoc-wsa-codec-names: This property contains list of wsa codec names. The names
1996			should comply with the wsa nodes configurations.
1997- asoc-wsa-codec-prefixes: This property contains list of wsa codec prefixes.
1998
1999Example:
2000	 sound {
2001		compatible = "qcom,msm8952-audio-slim-codec";
2002		qcom,model = "msm8952-tomtom-snd-card";
2003		reg = <0xc051000 0x4>,
2004		      <0xc051004 0x4>,
2005		      <0xc055000 0x4>;
2006		reg-names = "csr_gp_io_mux_mic_ctl",
2007			    "csr_gp_io_mux_spkr_ctl",
2008			    "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel";
2009		qcom,msm-ext-pa = "primary";
2010		qcom,mi2s-audio-intf;
2011		qcom,auxpcm-audio-intf;
2012		qcom,msm-mi2s-master = <1>, <0>, <1>, <1>;
2013		qcom,msm-mi2s-ext-mclk = <1>, <1>, <0>, <1>;
2014		reg = <0x1711a000 0x4>,
2015		      <0x1711b000 0x4>,
2016		      <0x1711c000 0x4>,
2017		      <0x1711d000 0x4>;
2018		reg-names = "lpaif_pri_mode_muxsel",
2019			    "lpaif_sec_mode_muxsel",
2020			    "lpaif_tert_mode_muxsel",
2021			    "lpaif_quat_mode_muxsel";
2022		qcom,msm-mclk-freq = <9600000>;
2023		qcom,msm-mbhc-hphl-swh = <0>;
2024		qcom,msm-mbhc-gnd-swh = <0>;
2025		qcom,wsa-disable;
2026		qcom,msm-mbhc-moist-cfg = <1>, <3>, <0>;
2027		qcom,msm-hs-micbias-type = "internal";
2028		qcom,msm-micbias1-ext-cap;
2029		qcom,audio-routing =
2030			"RX_BIAS", "MCLK",
2031			"SPK_RX_BIAS", "MCLK",
2032			"INT_LDO_H", "MCLK",
2033			"MIC BIAS External", "Handset Mic",
2034			"MIC BIAS Internal2", "Headset Mic",
2035			"MIC BIAS External", "Secondary Mic",
2036			"AMIC1", "MIC BIAS External",
2037			"AMIC2", "MIC BIAS Internal2",
2038			"AMIC3", "MIC BIAS External";
2039		qcom,msm-gpios =
2040			"slim",
2041			"us_eu_gpio";
2042		qcom,pinctrl-names =
2043			"all_off",
2044			"slim_act",
2045			"us_eu_gpio_act",
2046			"slim_us_eu_gpio_act";
2047		pinctrl-names =
2048			"all_off",
2049			"slim_act",
2050			"us_eu_gpio_act",
2051			"slim_us_eu_gpio_act";
2052		pinctrl-0 = <&cdc_slim_lines_sus &cross_conn_det_sus>;
2053		pinctrl-1 = <&cdc_slim_lines_act &cross_conn_det_sus>;
2054		pinctrl-2 = <&cdc_slim_lines_sus &cross_conn_det_act>;
2055		pinctrl-3 = <&cdc_slim_lines_act &cross_conn_det_act>;
2056		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
2057		qcom,headset-jack-type-NC;
2058		qcom,audio-routing =
2059			"RX_BIAS", "MCLK",
2060			"LDO_H", "MCLK",
2061			"SPK_OUT", "MCLK",
2062			"AMIC1", "MIC BIAS1 External",
2063			"MIC BIAS1 External", "Handset Mic",
2064			"AMIC2", "MIC BIAS2 External",
2065			"MIC BIAS2 External", "Headset Mic",
2066			"AMIC4", "MIC BIAS2 External",
2067			"MIC BIAS2 External", "ANCRight Headset Mic",
2068			"AMIC5", "MIC BIAS2 External",
2069			"MIC BIAS2 External", "ANCLeft Headset Mic",
2070			"DMIC1", "MIC BIAS1 External",
2071			"MIC BIAS1 External", "Digital Mic1",
2072			"DMIC2", "MIC BIAS1 External",
2073			"MIC BIAS1 External", "Digital Mic2",
2074			"DMIC3", "MIC BIAS3 External",
2075			"MIC BIAS3 External", "Digital Mic3",
2076			"DMIC4", "MIC BIAS3 External",
2077			"MIC BIAS3 External", "Digital Mic4";
2078 		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
2079 				<&loopback>, <&compress>, <&hostless>,
2080 				<&afe>, <&lsm>, <&routing>, <&lpa>;
2081 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2082 				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
2083 				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
2084 				"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa";
2085 		asoc-cpu = <&dai_hdmi>, <&dai_mi2s0>, <&dai_mi2s1>,
2086 				<&dai_mi2s2>, <&dai_mi2s3>, <&sb_0_rx>, <&sb_0_tx>,
2087 				<&sb_1_rx>, <&sb_1_tx>, <&sb_3_rx>, <&sb_3_tx>,
2088 				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>, <&bt_sco_rx>,
2089 				<&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>, <&afe_pcm_rx>,
2090 				<&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
2091 				<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
2092 				<&incall_music_2_rx>;
2093 		asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.0",
2094 				"msm-dai-q6-mi2s.1", "msm-dai-q6-mi2s.2",
2095 				"msm-dai-q6-mi2s.3", "msm-dai-q6-dev.16384",
2096 				"msm-dai-q6-dev.16385", "msm-dai-q6-dev.16386",
2097 				"msm-dai-q6-dev.16387", "msm-dai-q6-dev.16390",
2098 				"msm-dai-q6-dev.16391", "msm-dai-q6-dev.16392",
2099 				"msm-dai-q6-dev.16393", "msm-dai-q6-dev.16395",
2100 				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
2101 				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
2102 				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
2103 				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
2104 				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
2105 				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
2106 		asoc-codec = <&stub_codec>;
2107 		asoc-codec-names = "msm-stub-codec.1";
2108 		asoc-wsa-codec-names = "wsa881x.20170212";
2109 		asoc-wsa-codec-prefixes = "SpkrLeft";
2110 	};
2111
2112* APQ8009 I2S ASoC Machine driver
2113
2114Required properties:
2115- compatible : "qcom,apq8009-audio-i2s-codec"
2116- qcom,model : The user-visible name of this sound card.
2117- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
2118	mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs,
2119	this would list all the 2^N combinations.
2120- pinctrl-names : The combinations of gpio sets from above that are supported in
2121	the flavor. This can be sometimes same as qcom,pinctrl-names i.e with 2^N
2122	combinations or will have less incase if some combination is not supported.
2123- pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
2124- qcom,audio-routing : A list of the connections between audio components.
2125	Each entry is a pair of strings, the first being the connection's sink,
2126	the second being the connection's source.
2127
2128Optional properties:
2129- qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
2130- asoc-platform: This is phandle list containing the references to platform device
2131		nodes that are used as part of the sound card dai-links.
2132- asoc-platform-names:  This property contains list of platform names. The order of
2133			the platform names should match to that of the phandle order
2134			given in "asoc-platform".
2135- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2136	that are used as part of the sound card dai-links.
2137- asoc-cpu-names: This property contains list of cpu dai names. The order of the
2138	cpu dai names should match to that of the phandle order given
2139	in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2140	where the id (%d) field represents the back-end AFE port id that
2141	this CPU dai is associated with.
2142- asoc-codec: This is phandle list containing the references to codec dai device
2143	nodes that are used as part of the sound card dai-links.
2144- asoc-codec-names: This property contains list of codec dai names. The order of the
2145		codec dai names should match to that of the phandle order given
2146		in "asoc-codec".
2147- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
2148- qcom,wsa-devs: This property contains list of wsa codec names. The names
2149		should comply with the wsa nodes configurations.
2150- qcom,wsa-aux-dev-prefix: This property contains list of wsa codec prefixes.
2151- qcom,tdm-i2s-switch-enable: For chipsets where tdm mics are controlled by
2152			      switch, drive corresponding gpio to output high
2153			      to enable switch.
2154
2155Example:
2156	sound {
2157		compatible = "qcom,apq8009-audio-i2s-codec";
2158		qcom,model = "apq8009-tashalite-snd-card";
2159		qcom,msm-codec-type = "external";
2160		qcom,msm-mbhc-hphl-swh = <0>;
2161		qcom,msm-mbhc-gnd-swh = <0>;
2162		qcom,msm-mclk-freq = <9600000>;
2163		qcom,msm-hs-micbias-type = "internal";
2164		qcom,audio-routing =
2165			"AIF4 VI", "MCLK",
2166			"RX_BIAS", "MCLK",
2167			"MADINPUT", "MCLK",
2168			"AMIC2", "MIC BIAS2",
2169			"MIC BIAS2", "Headset Mic",
2170			"DMIC0", "MIC BIAS1",
2171			"MIC BIAS1", "Digital Mic0",
2172			"DMIC1", "MIC BIAS1",
2173			"MIC BIAS1", "Digital Mic1",
2174			"DMIC2", "MIC BIAS2",
2175			"MIC BIAS2", "Digital Mic2",
2176			"DMIC3", "MIC BIAS2",
2177			"MIC BIAS2", "Digital Mic3",
2178			"SpkrLeft IN", "SPK1 OUT",
2179			"SpkrRight IN", "SPK2 OUT";
2180
2181		qcom,msm-gpios =
2182			"pri_i2s",
2183			"quat_i2s";
2184		qcom,pinctrl-names =
2185			"all_off",
2186			"pri_i2s_act",
2187			"quat_i2s_act",
2188			"pri_i2s_quat_i2s_act";
2189		pinctrl-names =
2190			"all_off",
2191			"pri_i2s_act",
2192			"quat_i2s_act",
2193			"pri_i2s_quat_i2s_act";
2194		pinctrl-0 = <&pri_mi2s_sleep &pri_mi2s_ws_sleep
2195			&pri_mi2s_dout_sleep &pri_mi2s_din_sleep
2196			&quat_mi2s_sleep &quat_mi2s_din_sleep>;
2197		pinctrl-1 = <&pri_mi2s_active &pri_mi2s_ws_active
2198			&pri_mi2s_dout_active &pri_mi2s_din_active
2199			&quat_mi2s_sleep &quat_mi2s_din_sleep>;
2200		pinctrl-2 = <&pri_mi2s_sleep &pri_mi2s_ws_sleep
2201			&pri_mi2s_dout_sleep &pri_mi2s_din_sleep
2202			&quat_mi2s_active &quat_mi2s_din_active>;
2203		pinctrl-3 = <&pri_mi2s_active &pri_mi2s_ws_active
2204			&pri_mi2s_dout_active &pri_mi2s_din_active
2205			&quat_mi2s_active &quat_mi2s_din_active>;
2206
2207		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
2208			<&loopback>, <&compress>, <&hostless>,
2209			<&afe>, <&lsm>, <&routing>, <&cpe>, <&lpa>;
2210		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2211			"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
2212			"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
2213			"msm-lsm-client", "msm-pcm-routing", "msm-cpe-lsm",
2214			"msm-pcm-lpa";
2215		asoc-cpu =  <&dai_pri_auxpcm>, <&dai_hdmi>,<&dai_mi2s0>,
2216			<&dai_mi2s2>, <&dai_mi2s3>,
2217			<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
2218			<&sb_3_rx>, <&sb_3_tx>,
2219			<&sb_4_rx>, <&sb_4_tx>, <&afe_pcm_rx>,
2220			<&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
2221			<&incall_record_rx>, <&incall_record_tx>,
2222			<&incall_music_rx>, <&incall_music_2_rx>,
2223			<&bt_sco_rx>,
2224			<&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>;
2225		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
2226			"msm-dai-q6-mi2s.0",
2227			"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
2228			"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
2229			"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
2230			"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
2231			"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
2232			"msm-dai-q6-dev.224",
2233			"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2234			"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2235			"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
2236			"msm-dai-q6-dev.32770",
2237			"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
2238			"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293";
2239		asoc-codec = <&stub_codec>;
2240		asoc-codec-names = "msm-stub-codec.1";
2241		qcom,wsa-max-devs = <2>;
2242		qcom,wsa-devs = <&wsa881x_213>, <&wsa881x_214>;
2243		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight";
2244 	};
2245 
2246 * MSM8909 BG ASoC Machine driver
2247 
2248 Required properties:
2249 - compatible : "qcom,msm-bg-audio-codec"
2250 - qcom,model : The user-visible name of this sound card.
2251 - qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
2252 	mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs,
2253 	this would list all the 2^N combinations.
2254 - pinctrl-names : The combinations of gpio sets from above that are supported in
2255 	the flavor. This can be sometimes same as qcom,pinctrl-names i.e with 2^N
2256 	combinations or will have less incase if some combination is not supported.
2257 - pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
2258 - qcom,audio-routing : A list of the connections between audio components.
2259 	Each entry is a pair of strings, the first being the connection's sink,
2260 	the second being the connection's source.
2261 
2262 Optional properties:
2263 - qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
2264 - asoc-platform: This is phandle list containing the references to platform device
2265 		nodes that are used as part of the sound card dai-links.
2266 - asoc-platform-names:  This property contains list of platform names. The order of
2267 			the platform names should match to that of the phandle order
2268 			given in "asoc-platform".
2269 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2270 	that are used as part of the sound card dai-links.
2271 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
2272 	cpu dai names should match to that of the phandle order given
2273 	in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2274 	where the id (%d) field represents the back-end AFE port id that
2275 	this CPU dai is associated with.
2276 - asoc-codec: This is phandle list containing the references to codec dai device
2277	nodes that are used as part of the sound card dai-links.
2278- asoc-codec-names: This property contains list of codec dai names. The order of the
2279		codec dai names should match to that of the phandle order given
2280		in "asoc-codec".
2281- vdd-spkr-supply: BG codec supply's speaker regulator device tree node.
2282
2283Example:
2284	sound {
2285		status = "disabled";
2286		compatible = "qcom,msm-bg-audio-codec";
2287		qcom,model = "msm-bg-snd-card";
2288		reg = <0x7702000 0x4>,
2289		      <0x7702004 0x4>,
2290		      <0x7702008 0x4>,
2291		      <0x770200c 0x4>;
2292		reg-names = "csr_gp_io_mux_mic_ctl",
2293			    "csr_gp_io_mux_spkr_ctl",
2294			    "csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel",
2295			    "csr_gp_io_lpaif_sec_pcm_sec_mode_muxsel";
2296		qcom,msm-snd-card-id = <0>;
2297		qcom,msm-ext-pa = "primary";
2298		qcom,tdm-audio-intf;
2299		qcom,msm-afe-clk-ver = <1>;
2300		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
2301				<&loopback>, <&compress>, <&hostless>,
2302				<&afe>, <&lsm>, <&routing>, <&lpa>,
2303				<&voice_svc>;
2304		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2305				      "msm-pcm-dsp.2", "msm-voip-dsp",
2306				      "msm-pcm-voice", "msm-pcm-loopback",
2307				      "msm-compress-dsp", "msm-pcm-hostless",
2308				      "msm-pcm-afe", "msm-lsm-client",
2309				      "msm-pcm-routing", "msm-pcm-lpa",
2310				      "msm-voice-svc";
2311		asoc-cpu = <&dai_pri_auxpcm>,
2312				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>,
2313				<&dai_mi2s3>, <&dai_mi2s5>, <&dai_mi2s6>,
2314				<&bt_sco_rx>, <&bt_sco_tx>, <&bt_a2dp_rx>,
2315				<&int_fm_rx>, <&int_fm_tx>, <&afe_pcm_rx>,
2316				<&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
2317				<&incall_record_rx>, <&incall_record_tx>,
2318				<&incall_music_rx>, <&incall_music_2_rx>,
2319				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
2320				<&dai_pri_tdm_rx_1>, <&dai_pri_tdm_tx_1>,
2321				<&dai_pri_tdm_rx_2>, <&dai_pri_tdm_tx_2>,
2322				<&dai_pri_tdm_rx_3>, <&dai_pri_tdm_tx_3>;
2323		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
2324				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
2325				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
2326				"msm-dai-q6-mi2s.5", "msm-dai-q6-mi2s.6",
2327				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
2328				"msm-dai-q6-dev.12290", "msm-dai-q6-dev.12292",
2329				"msm-dai-q6-dev.12293", "msm-dai-q6-dev.224",
2330				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2331				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2332				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
2333				"msm-dai-q6-dev.32770", "msm-dai-q6-tdm.36864",
2334				"msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36866",
2335				"msm-dai-q6-tdm.36867", "msm-dai-q6-tdm.36868",
2336				"msm-dai-q6-tdm.36869", "msm-dai-q6-tdm.36870",
2337				"msm-dai-q6-tdm.36871";
2338		asoc-codec = <&stub_codec>;
2339		asoc-codec-names = "msm-stub-codec.1";
2340	};
2341
2342* BG Codec Driver.
2343
2344Required properties:
2345- compatible : "qcom,bg-codec"
2346- qcom,bg-glink : Glink component required for the BG codec communication.
2347	- compatible :"qcom,bg-cdc-glink"
2348- qcom,msm-glink-channels: Number of glink channels available to communicate
2349			   with the glink client
2350- vdd-spkr-supply: BG codec supply's speaker regulator device tree node.
2351
2352Optional properties:
2353- qcom,bg-speaker-connected: This flag will notify BG codec driver that speaker
2354			is connected to target or not. Based on this flag BG
2355			codec driver will send smart pa init params to BG.
2356
2357Example:
2358
2359        bg_cdc: bg_codec {
2360                status = "disabled";
2361                compatible = "qcom,bg-codec";
2362                qcom,bg-glink {
2363                        compatible = "qcom,bg-cdc-glink";
2364                        qcom,msm-glink-channels = <4>;
2365                };
2366        };
2367
2368* MDM9607 ASoC Machine driver
2369
2370Required properties:
2371- compatible : "qcom,mdm9607-audio-tomtom"
2372- qcom,model : The user-visible name of this sound card.
2373- qcom,audio-routing : A list of the connections between audio components.
2374Each entry is a pair of strings, the first being the connection's sink,
2375the second being the connection's source.
2376- qcom,tomtom-mclk-clk-freq : Master clock value given to codec. Some WCD9XXX
2377codec can run at different mclk values. Mclk value can be 9.6MHz or 12.288MHz.
2378- pinctrl-names : pinctrl state names for each pin group configuration.
2379- pinctrl-x : defines pinctrl state for each pin group
2380- asoc-platform: This is phandle list containing the references to platform device
2381		 nodes that are used as part of the sound card dai-links.
2382- asoc-platform-names: This property contains list of platform names. The order of
2383		       the platform names should match to that of the phandle order
2384		       given in "asoc-platform".
2385- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2386	    that are used as part of the sound card dai-links.
2387- asoc-cpu-names: This property contains list of cpu dai names. The order of the
2388		  cpu dai names should match to that of the phandle order given
2389		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2390		  where the id (%d) field represents the back-end AFE port id that
2391		  this CPU dai is associated with.
2392- asoc-codec: This is phandle list containing the references to codec dai device
2393	      nodes that are used as part of the sound card dai-links.
2394- asoc-codec-names: This property contains list of codec dai names. The order of the
2395		    codec dai names should match to that of the phandle order given
2396		    in "asoc-codec".
2397
2398Example:
2399
2400sound {
2401		compatible = "qcom,mdm9607-audio-tomtom";
2402		qcom,model = "mdm9607-tomtom-i2s-snd-card";
2403
2404		qcom,audio-routing =
2405			"RX_BIAS", "MCLK",
2406			"LDO_H", "MCLK",
2407			"AMIC1", "MIC BIAS1 External",
2408			"MIC BIAS1 External", "Handset Mic",
2409			"AMIC2", "MIC BIAS2 External",
2410			"MIC BIAS2 External", "Headset Mic",
2411			"AMIC3", "MIC BIAS2 External",
2412			"MIC BIAS2 External", "ANCRight Headset Mic",
2413			"AMIC4", "MIC BIAS2 External",
2414			"MIC BIAS2 External", "ANCLeft Headset Mic",
2415			"DMIC1", "MIC BIAS1 External",
2416			"MIC BIAS1 External", "Digital Mic1",
2417 			"DMIC3", "MIC BIAS3 External",
2418 			"MIC BIAS3 External", "Digital Mic3";
2419 
2420 		qcom,tomtom-mclk-clk-freq = <12288000>;
2421 		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
2422 				<&loopback>, <&hostless>, <&afe>, <&routing>,
2423 				<&pcm_dtmf>, <&host_pcm>;
2424 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2425 				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
2426 				"msm-pcm-hostless", "msm-pcm-afe",
2427 				"msm-pcm-routing", "msm-pcm-dtmf", "msm-voice-host-pcm";
2428 		asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&dtmf_tx>,
2429 				<&rx_capture_tx>, <&rx_playback_rx>,
2430 				<&tx_capture_tx>, <&tx_playback_rx>,
2431 				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
2432 				<&afe_proxy_tx>, <&incall_record_rx>,
2433 				<&incall_record_tx>, <&incall_music_rx>;
2434 		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-mi2s.0",
2435 				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
2436 				"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
2437 				"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
2438 				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2439 				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2440 				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773";
2441 		asoc-codec = <&stub_codec>;
2442 		asoc-codec-names = "msm-stub-codec.1";
2443 	};
2444 
2445 * MDMCALIFORNIUM ASoC Machine driver
2446 
2447 - compatible : "qcom,mdm-audio-tasha" for tasha codec and
2448                 node is "sound"
2449 - qcom,model : The user-visible name of this sound card.
2450- qcom,tasha-mclk-clk-freq : MCLK frequency value for tasha codec
2451                             and node is "sound-9335"
2452- qcom,audio-routing : A list of the connections between audio components.
2453- asoc-platform: This is phandle list containing the references to platform device
2454                 nodes that are used as part of the sound card dai-links.
2455- asoc-platform-names: This property contains list of platform names. The order of
2456                       the platform names should match to that of the phandle order
2457                       given in "asoc-platform".
2458- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2459            that are used as part of the sound card dai-links.
2460- asoc-cpu-names: This property contains list of cpu dai names. The order of the
2461                  cpu dai names should match to that of the phandle order given
2462                  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2463                  where the id (%d) field represents the back-end AFE port id that
2464                  this CPU dai is associated with.
2465- asoc-codec: This is phandle list containing the references to codec dai device
2466              nodes that are used as part of the sound card dai-links.
2467- asoc-codec-names: This property contains list of codec dai names. The order of the
2468                    codec dai names should match to that of the phandle order given
2469                    in "asoc-codec".
2470Optional properties:
2471- clock-names : clock name defined for external clock.
2472- clocks : external clock defined for codec clock.
2473- qcom,hph-en1-gpio : GPIO to enable HiFi amplifiers.
2474- qcom,hph-en0-gpio : GPIO to enable HiFi audio route to headset.
2475
2476Example:
2477
2478	sound {
2479	compatible = "qcom,mdm-audio-tasha";
2480	qcom,model = "mdm-tasha-i2s-snd-card";
2481
2482	qcom,audio-routing =
2483		"RX_BIAS", "MCLK",
2484		"LDO_H", "MCLK",
2485		"AIF4 MAD", "MCLK",
2486		"ultrasound amp", "LINEOUT1",
2487		"ultrasound amp", "LINEOUT3",
2488		"AMIC1", "MIC BIAS1 Internal1",
2489		"MIC BIAS1 Internal1", "Handset Mic",
2490		"AMIC2", "MIC BIAS2 External",
2491		"MIC BIAS2 External", "Headset Mic",
2492		"AMIC3", "MIC BIAS2 External",
2493		"MIC BIAS2 External", "ANCRight Headset Mic",
2494		"AMIC4", "MIC BIAS2 External",
2495		"MIC BIAS2 External", "ANCLeft Headset Mic",
2496		"DMIC1", "MIC BIAS1 External",
2497		"MIC BIAS1 External", "Digital Mic1",
2498		"DMIC2", "MIC BIAS1 External",
2499		"MIC BIAS1 External", "Digital Mic2",
2500		"DMIC3", "MIC BIAS3 External",
2501		"MIC BIAS3 External", "Digital Mic3",
2502		"DMIC4", "MIC BIAS3 External",
2503		"MIC BIAS3 External", "Digital Mic4",
2504		"DMIC5", "MIC BIAS4 External",
2505		"MIC BIAS4 External", "Digital Mic5",
2506		"DMIC6", "MIC BIAS4 External",
2507		"MIC BIAS4 External", "Digital Mic6";
2508
2509		qcom,tasha-mclk-clk-freq = <12288000>;
2510		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
2511				<&loopback>, <&hostless>, <&afe>, <&routing>,
2512				<&pcm_dtmf>, <&host_pcm>;
2513		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2514				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
2515				"msm-pcm-hostless", "msm-pcm-afe",
2516				"msm-pcm-routing", "msm-pcm-dtmf", "msm-voice-host-pcm";
2517		asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&dtmf_tx>,
2518				<&rx_capture_tx>, <&rx_playback_rx>,
2519				<&tx_capture_tx>, <&tx_playback_rx>,
2520				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
2521				<&afe_proxy_tx>, <&incall_record_rx>,
2522				<&incall_record_tx>, <&incall_music_rx>;
2523		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-mi2s.0",
2524				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
2525				"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
2526				"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
2527				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2528				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2529				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773";
2530		asoc-codec = <&stub_codec>;
2531		asoc-codec-names = "msm-stub-codec.1";
2532		qcom,aux-codec = <&stub_codec>;
2533	};
2534
2535* SDX ASoC Machine driver
2536
2537Required properties:
2538- compatible : "qcom,sdx-asoc-snd-tavil"
2539- qcom,model : The user-visible name of this sound card.
2540- qcom,prim_mi2s_aux_master : Handle to prim_master pinctrl configurations
2541- qcom,prim_mi2s_aux_slave : Handle to prim_slave pinctrl configurations
2542- qcom,sec_mi2s_aux_master : Handle to sec_master pinctrl configurations
2543- qcom,sec_mi2s_aux_slave : Handle to sec_slave pinctrl configurations
2544- asoc-platform: This is phandle list containing the references to platform device
2545		nodes that are used as part of the sound card dai-links.
2546- asoc-platform-names: This property contains list of platform names. The order of
2547		the platform names should match to that of the phandle order
2548		given in "asoc-platform".
2549- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2550		that are used as part of the sound card dai-links.
2551- asoc-cpu-names: This property contains list of cpu dai names. The order of the
2552		cpu dai names should match to that of the phandle order give
2553		in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2554		where the id (%d) field represents the back-end AFE port id that
2555		this CPU dai is associated with.
2556
2557Example:
2558
2559	sound-tavil {
2560		compatible = "qcom,sdx-asoc-snd-tavil";
2561		qcom,model = "sdx-tavil-i2s-snd-card";
2562		qcom,prim_mi2s_aux_master = <&prim_master>;
2563		qcom,prim_mi2s_aux_slave = <&prim_slave>;
2564		qcom,sec_mi2s_aux_master = <&sec_master>;
2565		qcom,sec_mi2s_aux_slave = <&sec_slave>;
2566
2567		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
2568				<&loopback>, <&hostless>, <&afe>, <&routing>,
2569				<&pcm_dtmf>, <&host_pcm>, <&compress>;
2570		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2571				"msm-voip-dsp", "msm-pcm-voice",
2572				"msm-pcm-loopback", "msm-pcm-hostless",
2573				"msm-pcm-afe", "msm-pcm-routing",
2574				"msm-pcm-dtmf", "msm-voice-host-pcm",
2575				"msm-compress-dsp";
2576		asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>,
2577				<&dtmf_tx>,
2578				<&rx_capture_tx>, <&rx_playback_rx>,
2579				<&tx_capture_tx>, <&tx_playback_rx>,
2580				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
2581				<&afe_proxy_tx>, <&incall_record_rx>,
2582				<&incall_record_tx>, <&incall_music_rx>,
2583 				<&dai_sec_auxpcm>;
2584 		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
2585 				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
2586 				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
2587 				"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
2588 				"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
2589 				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2590 				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2591 				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
2592 				"msm-dai-q6-auxpcm.2";
2593 	};
2594 
2595 * SDX ASoC Auto Machine driver
2596 
2597 Required properties:
2598 - compatible : "qcom,sdx-asoc-snd-auto"
2599 - qcom,model : The user-visible name of this sound card.
2600 - qcom,prim_mi2s_aux_master : Handle to prim_master pinctrl configurations
2601 - qcom,prim_mi2s_aux_slave : Handle to prim_slave pinctrl configurations
2602 - qcom,sec_mi2s_aux_master : Handle to sec_master pinctrl configurations
2603 - qcom,sec_mi2s_aux_slave : Handle to sec_slave pinctrl configurations
2604 - asoc-platform: This is phandle list containing the references to platform device
2605 		nodes that are used as part of the sound card dai-links.
2606 - asoc-platform-names: This property contains list of platform names. The order of
2607 		the platform names should match to that of the phandle order
2608 		given in "asoc-platform".
2609 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2610 		that are used as part of the sound card dai-links.
2611 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
2612 		cpu dai names should match to that of the phandle order give
2613 		in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2614 		where the id (%d) field represents the back-end AFE port id that
2615 		this CPU dai is associated with.
2616- asoc-codec: This is phandle list containing the references to codec dai device
2617		nodes that are used as part of the sound card dai-links.
2618- asoc-codec-names: This property contains list of codec dai names. The order of the
2619		codec dai names should match to that of the phandle order given
2620		in "asoc-codec".
2621
2622Example:
2623
2624	sound-auto {
2625		compatible = "qcom,sdx-asoc-snd-auto";
2626		qcom,model = "sdx-auto-i2s-snd-card";
2627		qcom,prim_mi2s_aux_master = <&prim_master>;
2628		qcom,prim_mi2s_aux_slave = <&prim_slave>;
2629		qcom,sec_mi2s_aux_master = <&sec_master>;
2630		qcom,sec_mi2s_aux_slave = <&sec_slave>;
2631
2632		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
2633				<&loopback>, <&hostless>, <&afe>, <&routing>,
2634				<&pcm_dtmf>, <&host_pcm>, <&compress>;
2635		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2636				"msm-voip-dsp", "msm-pcm-voice",
2637				"msm-pcm-loopback", "msm-pcm-hostless",
2638				"msm-pcm-afe", "msm-pcm-routing",
2639				"msm-pcm-dtmf", "msm-voice-host-pcm",
2640				"msm-compress-dsp";
2641		asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>,
2642				<&dtmf_tx>,
2643				<&rx_capture_tx>, <&rx_playback_rx>,
2644				<&tx_capture_tx>, <&tx_playback_rx>,
2645				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
2646				<&afe_proxy_tx>, <&incall_record_rx>,
2647				<&incall_record_tx>, <&incall_music_rx>,
2648				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
2649				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
2650				<&dai_sec_auxpcm>, <&incall_music_dl_rx>;
2651		asoc-cpu-names = "msm-dai-q6-auxpcm.1",
2652				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
2653				"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
2654				"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
2655				"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
2656				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2657				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2658				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
2659				"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
2660				"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
2661				"msm-dai-q6-auxpcm.2", "msm-dai-q6-dev.32774";
2662		asoc-codec = <&tlv320aic3x_codec>, <&stub_codec>;
2663		asoc-codec-names = "tlv320aic3x-codec", "msm-stub-codec.1";
2664	};
2665
2666* APQ8096 Automotive ASoC Machine driver
2667
2668Required properties:
2669- compatible : "qcom,apq8096-asoc-snd-auto" for auto codec and
2670		node is "sound-auto",
2671		"qcom,apq8096-asoc-snd-adp-agave" for adp agave codec and
2672		node is "sound-adp-agave",
2673		"qcom,apq8096-asoc-snd-adp-mmxf" for adp mmxf codec and
2674		node is "sound-adp-mmxf".
2675- qcom,model : The user-visible name of this sound card.
2676- asoc-platform: This is phandle list containing the references to platform device
2677		nodes that are used as part of the sound card dai-links.
2678- asoc-platform-names: This property contains list of platform names. The order of
2679		the platform names should match to that of the phandle order
2680		given in "asoc-platform".
2681- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2682		that are used as part of the sound card dai-links.
2683- asoc-cpu-names: This property contains list of cpu dai names. The order of the
2684		cpu dai names should match to that of the phandle order given
2685		in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2686		where the id (%d) field represents the back-end AFE port id that
2687		this CPU dai is associated with.
2688- asoc-codec: This is phandle list containing the references to codec dai device
2689		nodes that are used as part of the sound card dai-links.
2690- asoc-codec-names: This property contains list of codec dai names. The order of the
2691		codec dai names should match to that of the phandle order given
2692		in "asoc-codec".
2693
2694Example:
2695
2696	sound-auto {
2697		compatible = "qcom,apq8096-asoc-snd-auto";
2698		qcom,model = "apq8096-auto-snd-card";
2699
2700		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
2701				<&loopback>, <&compress>, <&hostless>,
2702				<&afe>, <&lsm>, <&routing>, <&compr>,
2703				<&loopback1>;
2704		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2705				"msm-pcm-dsp.2", "msm-voip-dsp",
2706				"msm-pcm-voice", "msm-pcm-loopback",
2707				"msm-compress-dsp", "msm-pcm-hostless",
2708				"msm-pcm-afe", "msm-lsm-client",
2709				"msm-pcm-routing", "msm-compr-dsp",
2710				"msm-pcm-loopback.1";
2711		asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_hdmi>,
2712				<&dai_mi2s>, <&dai_mi2s_quat>,
2713				<&afe_pcm_rx>, <&afe_pcm_tx>,
2714				<&afe_proxy_rx>, <&afe_proxy_tx>,
2715				<&incall_record_rx>, <&incall_record_tx>,
2716				<&incall_music_rx>, <&incall_music2_rx>,
2717				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>,
2718				<&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>,
2719				<&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>,
2720				<&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>,
2721				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>,
2722				<&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>,
2723				<&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>,
2724				<&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>;
2725		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
2726				"msm-dai-q6-hdmi.8",
2727				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
2728				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
2729				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
2730				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
2731				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770",
2732				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898",
2733				"msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902",
2734				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899",
2735				"msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903",
2736				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914",
2737				"msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918",
2738				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915",
2739				"msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919";
2740		asoc-codec = <&stub_codec>;
2741		asoc-codec-names = "msm-stub-codec.1";
2742	};
2743
2744* SDM660 ASoC Slimbus Machine driver
2745
2746Required properties:
2747- compatible : "qcom,sdm660-asoc-snd-tasha" for tasha codec,
2748		"qcom,sdm660-asoc-snd-tavil" for tavil codec.
2749- qcom,model : The user-visible name of this sound card.
2750- qcom,msm-mclk-freq : MCLK frequency value for external codec
2751- qcom,msm-gpios : Lists down all the gpio sets that are supported.
2752- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
2753mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs,
2754this would list all the 2^N combinations.
2755- pinctrl-names : The combinations of gpio sets from above that are supported in
2756the flavor. This can be sometimes same as qcom, pinctrl-names i.e with 2^N
2757 combinations or will have less incase if some combination is not supported.
2758 - pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
2759 - qcom,audio-routing : A list of the connections between audio components.
2760 - asoc-platform: This is phandle list containing the references to platform device
2761 		 nodes that are used as part of the sound card dai-links.
2762 - asoc-platform-names: This property contains list of platform names. The order of
2763 		       the platform names should match to that of the phandle order
2764 		       given in "asoc-platform".
2765 - asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2766 	    that are used as part of the sound card dai-links.
2767 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
2768 		  cpu dai names should match to that of the phandle order given
2769 		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2770 		  where the id (%d) field represents the back-end AFE port id that
2771 		  this CPU dai is associated with.
2772 - asoc-codec: This is phandle list containing the references to codec dai device
2773 	      nodes that are used as part of the sound card dai-links.
2774 - asoc-codec-names: This property contains list of codec dai names. The order of the
2775 		    codec dai names should match to that of the phandle order given
2776 		    in "asoc-codec".
2777 Optional properties:
2778 - qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
2779 - clock-names : clock name defined for external clock.
2780 - clocks : external clock defined for codec clock.
2781 - qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
2782 - qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
2783 - qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
2784 
2785 Example:
2786 
2787 	sound-9335 {
2788 	compatible = "qcom,sdm660-asoc-snd-tasha";
2789 	qcom,model = "sdm660-tasha-snd-card";
2790
2791	qcom,audio-routing =
2792		"RX_BIAS", "MCLK",
2793		"LDO_H", "MCLK",
2794		"AIF4 MAD", "MCLK",
2795		"ultrasound amp", "LINEOUT1",
2796		"ultrasound amp", "LINEOUT3",
2797		"AMIC1", "MIC BIAS1 Internal1",
2798		"MIC BIAS1 Internal1", "Handset Mic",
2799		"AMIC2", "MIC BIAS2 External",
2800		"MIC BIAS2 External", "Headset Mic",
2801		"AMIC3", "MIC BIAS2 External",
2802		"MIC BIAS2 External", "ANCRight Headset Mic",
2803		"AMIC4", "MIC BIAS2 External",
2804		"MIC BIAS2 External", "ANCLeft Headset Mic",
2805		"DMIC1", "MIC BIAS1 External",
2806		"MIC BIAS1 External", "Digital Mic1",
2807		"DMIC2", "MIC BIAS1 External",
2808		"MIC BIAS1 External", "Digital Mic2",
2809		"DMIC3", "MIC BIAS3 External",
2810		"MIC BIAS3 External", "Digital Mic3",
2811		"DMIC4", "MIC BIAS3 External",
2812		"MIC BIAS3 External", "Digital Mic4",
2813		"DMIC5", "MIC BIAS4 External",
2814		"MIC BIAS4 External", "Digital Mic5",
2815		"DMIC6", "MIC BIAS4 External",
2816		"MIC BIAS4 External", "Digital Mic6";
2817
2818		qcom,msm-mbhc-hphl-swh = <0>;
2819		qcom,msm-mbhc-gnd-swh = <0>;
2820		qcom,msm-mclk-freq = <9600000>;
2821		qcom,msm-gpios =
2822			"slim",
2823			"us_eu_gpio";
2824		qcom,pinctrl-names =
2825			"all_off",
2826			"slim_act",
2827			"us_eu_gpio_act",
2828			"slim_us_eu_gpio_act";
2829		pinctrl-names =
2830			"all_off",
2831			"slim_act",
2832			"us_eu_gpio_act",
2833			"slim_us_eu_gpio_act";
2834		pinctrl-0 = <&cdc_slim_lines_sus &cross_conn_det_sus>;
2835		pinctrl-1 = <&cdc_slim_lines_act &cross_conn_det_sus>;
2836		pinctrl-2 = <&cdc_slim_lines_sus &cross_conn_det_act>;
2837		pinctrl-3 = <&cdc_slim_lines_act &cross_conn_det_act>;
2838		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
2839		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
2840				<&loopback>, <&compress>, <&hostless>,
2841				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>;
2842		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2843				"msm-pcm-dsp.2", "msm-voip-dsp",
2844				"msm-pcm-voice", "msm-pcm-loopback",
2845				"msm-compress-dsp", "msm-pcm-hostless",
2846				"msm-pcm-afe", "msm-lsm-client",
2847				"msm-pcm-routing", "msm-cpe-lsm",
2848				"msm-compr-dsp";
2849		asoc-cpu = <&dai_hdmi>,
2850				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
2851				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
2852				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
2853				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
2854				<&afe_proxy_tx>, <&incall_record_rx>,
2855				<&incall_record_tx>, <&incall_music_rx>,
2856				<&incall_music_2_rx>, <&sb_5_rx>;
2857		asoc-cpu-names = "msm-dai-q6-hdmi.8",
2858				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
2859				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
2860				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
2861				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
2862				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
2863				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
2864				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2865				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2866				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
2867				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394";
2868		asoc-codec = <&stub_codec>;
2869		asoc-codec-names = "msm-stub-codec.1";
2870		qcom,wsa-max-devs = <2>;
2871		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
2872				<&wsa881x_213>, <&wsa881x_214>;
2873		qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
2874					  "SpkrRight", "SpkrLeft";
2875	};
2876
2877* MSM8998 ASoC Machine driver
2878
2879Required properties:
2880- compatible : "qcom,msm8998-asoc-snd-tasha" for tasha codec,
2881		"qcom,msm8998-asoc-snd-tavil" for tavil codec.
2882- qcom,model : The user-visible name of this sound card.
2883- qcom,tasha-mclk-clk-freq : MCLK frequency value for tasha codec
2884- qcom,tavil-mclk-clk-freq : MCLK frequency value for tavil codec
2885- qcom,audio-routing : A list of the connections between audio components.
2886- asoc-platform: This is phandle list containing the references to platform device
2887		 nodes that are used as part of the sound card dai-links.
2888- asoc-platform-names: This property contains list of platform names. The order of
2889		       the platform names should match to that of the phandle order
2890		       given in "asoc-platform".
2891- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
2892	    that are used as part of the sound card dai-links.
2893- asoc-cpu-names: This property contains list of cpu dai names. The order of the
2894		  cpu dai names should match to that of the phandle order given
2895		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
2896		  where the id (%d) field represents the back-end AFE port id that
2897		  this CPU dai is associated with.
2898- asoc-codec: This is phandle list containing the references to codec dai device
2899	      nodes that are used as part of the sound card dai-links.
2900- asoc-codec-names: This property contains list of codec dai names. The order of the
2901		    codec dai names should match to that of the phandle order given
2902		    in "asoc-codec".
2903Optional properties:
2904- qcom,mbhc-audio-jack-type : String to indicate the jack type on the hardware.
2905		Possible Values:
2906		4-pole-jack : Jack on the hardware is 4-pole.
2907		5-pole-jack : Jack on the hardware is 5-pole.
2908		6-pole-jack : Jack on the hardware is 6-pole.
2909- clock-names : clock name defined for external clock.
2910- clocks : external clock defined for codec clock.
2911- qcom,hph-en1-gpio : GPIO to enable HiFi amplifiers.
2912- qcom,hph-en0-gpio : GPIO to enable HiFi audio route to headset.
2913- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
2914- qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
2915- qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
2916- qcom,wcn-btfm : Property to specify if WCN BT/FM chip is used for the target
2917- qcom,msm-mbhc-usbc-audio-supported : Property to specify if analog audio feature is
2918				       enabled or not.
2919- qcom,usbc-analog-en1-gpio : EN1 GPIO to enable USB type-C analog audio
2920- qcom,usbc-analog-en2-gpio : EN2 GPIO to enable USB type-C analog audio
2921- qcom,usbc-analog-force_detect_gpio : Force detect GPIO to enable USB type-C analog audio
2922
2923Example:
2924
2925	sound-9335 {
2926	compatible = "qcom,msm8998-asoc-snd";
2927	qcom,model = "msm8998-tasha-snd-card";
2928
2929	qcom,audio-routing =
2930 		"RX_BIAS", "MCLK",
2931 		"LDO_H", "MCLK",
2932 		"AIF4 MAD", "MCLK",
2933 		"ultrasound amp", "LINEOUT1",
2934 		"ultrasound amp", "LINEOUT3",
2935 		"AMIC1", "MIC BIAS1 Internal1",
2936 		"MIC BIAS1 Internal1", "Handset Mic",
2937 		"AMIC2", "MIC BIAS2 External",
2938 		"MIC BIAS2 External", "Headset Mic",
2939 		"AMIC3", "MIC BIAS2 External",
2940 		"MIC BIAS2 External", "ANCRight Headset Mic",
2941 		"AMIC4", "MIC BIAS2 External",
2942 		"MIC BIAS2 External", "ANCLeft Headset Mic",
2943 		"DMIC1", "MIC BIAS1 External",
2944 		"MIC BIAS1 External", "Digital Mic1",
2945 		"DMIC2", "MIC BIAS1 External",
2946 		"MIC BIAS1 External", "Digital Mic2",
2947 		"DMIC3", "MIC BIAS3 External",
2948 		"MIC BIAS3 External", "Digital Mic3",
2949 		"DMIC4", "MIC BIAS3 External",
2950 		"MIC BIAS3 External", "Digital Mic4",
2951 		"DMIC5", "MIC BIAS4 External",
2952 		"MIC BIAS4 External", "Digital Mic5",
2953 		"DMIC6", "MIC BIAS4 External",
2954 		"MIC BIAS4 External", "Digital Mic6";
2955 
2956 		qcom,msm-mbhc-hphl-swh = <0>;
2957 		qcom,msm-mbhc-gnd-swh = <0>;
2958 		qcom,tasha-mclk-clk-freq = <9600000>;
2959 		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
2960 				<&loopback>, <&compress>, <&hostless>,
2961 				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
2962 				<&trans_loopback>;
2963		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
2964				"msm-pcm-dsp.2", "msm-voip-dsp",
2965				"msm-pcm-voice", "msm-pcm-loopback",
2966				"msm-compress-dsp", "msm-pcm-hostless",
2967				"msm-pcm-afe", "msm-lsm-client",
2968				"msm-pcm-routing", "msm-cpe-lsm",
2969				"msm-compr-dsp","msm-transcode-loopback";
2970		asoc-cpu = <&dai_hdmi>,
2971				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
2972				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
2973				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
2974				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
2975				<&afe_proxy_tx>, <&incall_record_rx>,
2976				<&incall_record_tx>, <&incall_music_rx>,
2977				<&incall_music_2_rx>, <&sb_5_rx>;
2978		asoc-cpu-names = "msm-dai-q6-hdmi.8",
2979				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
2980				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
2981				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
2982				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
2983				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
2984				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
2985				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
2986				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
2987				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
2988				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394";
2989		asoc-codec = <&stub_codec>;
2990		asoc-codec-names = "msm-stub-codec.1";
2991		qcom,wsa-max-devs = <2>;
2992		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
2993				<&wsa881x_213>, <&wsa881x_214>;
2994		qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
2995					  "SpkrRight", "SpkrLeft";
2996		qcom,msm-mbhc-usbc-audio-supported = <1>;
2997		qcom,usbc-analog-en1-gpio = <&wcd_usbc_analog_en1_gpio>;
2998		qcom,usbc-analog-en2-gpio = <&tlmm 51 0>;
2999		qcom,usbc-analog-force_detect_gpio = <&wcd_usbc_analog_f_gpio>;
3000	};
3001
3002* MSMSTUB ASoC Machine driver
3003
3004Required properties:
3005- compatible : "qcom,msm8998-asoc-snd-stub" for MSM8998 target.
3006	       "qcom,sdm845-asoc-snd-stub" for SDM845 target.
3007- qcom,model : The user-visible name of this sound card.
3008- qcom,tasha-mclk-clk-freq : MCLK frequency value for tasha codec
3009- asoc-platform: This is phandle list containing the references to platform device
3010		 nodes that are used as part of the sound card dai-links.
3011- asoc-platform-names: This property contains list of platform names. The order of
3012		       the platform names should match to that of the phandle order
3013		       given in "asoc-platform".
3014- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
3015	    that are used as part of the sound card dai-links.
3016- asoc-cpu-names: This property contains list of cpu dai names. The order of the
3017		  cpu dai names should match to that of the phandle order given
3018		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
3019		  where the id (%d) field represents the back-end AFE port id that
3020		  this CPU dai is associated with.
3021- asoc-codec: This is phandle list containing the references to codec dai device
3022	      nodes that are used as part of the sound card dai-links.
3023- asoc-codec-names: This property contains list of codec dai names. The order of the
3024		    codec dai names should match to that of the phandle order given
3025		    in "asoc-codec".
3026Optional properties:
3027- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
3028
3029Example:
3030
3031	sound_msm:sound-9335 {
3032		compatible = "qcom,msm8998-asoc-snd-stub";
3033		qcom,model = "msm8998-stub-snd-card";
3034
3035		qcom,tasha-mclk-clk-freq = <9600000>;
3036		asoc-platform = <&pcm0>;
3037		asoc-platform-names = "msm-pcm-dsp.0";
3038		asoc-cpu = <&sb_0_rx>, <&sb_0_tx>;
3039		asoc-cpu-names = "msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385";
3040		asoc-codec = <&stub_codec>;
3041		asoc-codec-names = "msm-stub-codec.1";
3042		qcom,wsa-max-devs = <0>;
3043	};
3044
3045* WCD DSP manager driver
3046
3047Required properties:
3048- compatible : "qcom,wcd-dsp-mgr"
3049- qcom,wdsp-components : This is phandle list containing the references to the
3050			 components of the manager driver. Manager driver will
3051			 register to component framework with these phandles.
3052- qcom,img-filename : String property to provide the dsp image file name that is
3053		     to be read from file system and downloaded to dsp memory
3054Optional properties:
3055- qcom,wdsp-cmpnt-dev-name : Property that manager driver will parse, but defined
3056			     in the child's DT entry that is given to manager driver
3057			     with phandle. This property will be used by the manager
3058			     driver in case the manager driver cannot match child's
3059			     of_node pointer to registered phandle.
3060
3061Example:
3062
3063	qcom,wcd-dsp-mgr {
3064		compatible = "qcom,wcd-dsp-mgr";
3065		qcom,wdsp-components = <&wcd934x_cdc 0>,
3066				       <&wcd_spi_0 1>,
3067				       <&glink_spi 2>;
3068		qcom,img-filename = "cpe_9340";
3069	};
3070
3071Example of child node that would have qcom,wdsp-cmpnt-dev-name property
3072
3073	wcd934x_cdc: tavil_codec {
3074		qcom,wdsp-cmpnt-dev-name = "tavil_codec";
3075	};
3076
3077* SDM845 ASoC Machine driver
3078
3079Required properties:
3080- compatible : "qcom,sdm845-asoc-snd-tavil"
3081- qcom,model : The user-visible name of this sound card.
3082- qcom,tavil-mclk-clk-freq : MCLK frequency value for tavil codec
3083- qcom,audio-routing : A list of the connections between audio components.
3084- asoc-platform: This is phandle list containing the references to platform device
3085		 nodes that are used as part of the sound card dai-links.
3086- asoc-platform-names: This property contains list of platform names. The order of
3087		       the platform names should match to that of the phandle order
3088		       given in "asoc-platform".
3089- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
3090	    that are used as part of the sound card dai-links.
3091- asoc-cpu-names: This property contains list of cpu dai names. The order of the
3092		  cpu dai names should match to that of the phandle order given
3093		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
3094		  where the id (%d) field represents the back-end AFE port id that
3095		  this CPU dai is associated with.
3096- asoc-codec: This is phandle list containing the references to codec dai device
3097	      nodes that are used as part of the sound card dai-links.
3098- asoc-codec-names: This property contains list of codec dai names. The order of the
3099		    codec dai names should match to that of the phandle order given
3100		    in "asoc-codec".
3101Optional properties:
3102- qcom,mbhc-audio-jack-type : String to indicate the jack type on the hardware.
3103 		Possible Values:
3104 		4-pole-jack : Jack on the hardware is 4-pole.
3105 		5-pole-jack : Jack on the hardware is 5-pole.
3106 		6-pole-jack : Jack on the hardware is 6-pole.
3107 - clock-names : clock name defined for external clock.
3108 - clocks : external clock defined for codec clock.
3109 - qcom,msm-mbhc-hs-mic-max-threshold-mv : headset detection threshold. When micbias is
3110 					  not set to 2.7v, need scale in driver.
3111 - qcom,msm-mbhc-hs-mic-min-threshold-mv : headhpone detection threshold. When micbias is
3112 					  not set to 2.7v, need scale in driver.
3113 - qcom,hph-en1-gpio : GPIO to enable HiFi amplifiers.
3114 - qcom,hph-en0-gpio : GPIO to enable HiFi audio route to headset.
3115 - qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
3116 - qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
3117 - qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
3118 - qcom,wcn-btfm : Property to specify if WCN BT/FM chip is used for the target
3119 
3120 Example:
3121 
3122 	sound-tavil {
3123 		compatible = "qcom,sdm845-asoc-snd-tavil";
3124 		qcom,model = "sdm845-tavil-snd-card";
3125 		qcom,ext-disp-audio-rx;
3126 		qcom,wcn-btfm;
3127 		qcom,mi2s-audio-intf;
3128 		qcom,auxpcm-audio-intf;
3129 		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
3130 
3131 		reg = <0x1711a000 0x4>,
3132 		      <0x1711b000 0x4>,
3133 		      <0x1711c000 0x4>,
3134 		      <0x1711d000 0x4>;
3135 		reg-names = "lpaif_pri_mode_muxsel",
3136			    "lpaif_sec_mode_muxsel",
3137			    "lpaif_tert_mode_muxsel",
3138			    "lpaif_quat_mode_muxsel";
3139
3140		qcom,audio-routing =
3141			"RX_BIAS", "MCLK",
3142			"MADINPUT", "MCLK",
3143			"hifi amp", "LINEOUT1",
3144			"hifi amp", "LINEOUT2",
3145			"AMIC2", "MIC BIAS2",
3146			"MIC BIAS2", "Headset Mic",
3147			"AMIC3", "MIC BIAS2",
3148			"MIC BIAS2", "ANCRight Headset Mic",
3149			"AMIC4", "MIC BIAS2",
3150			"MIC BIAS2", "ANCLeft Headset Mic",
3151			"AMIC5", "MIC BIAS3",
3152			"MIC BIAS3", "Handset Mic",
3153			"DMIC0", "MIC BIAS1",
3154			"MIC BIAS1", "Digital Mic0",
3155			"DMIC1", "MIC BIAS1",
3156			"MIC BIAS1", "Digital Mic1",
3157			"DMIC2", "MIC BIAS3",
3158			"MIC BIAS3", "Digital Mic2",
3159			"DMIC3", "MIC BIAS3",
3160			"MIC BIAS3", "Digital Mic3",
3161			"DMIC4", "MIC BIAS4",
3162			"MIC BIAS4", "Digital Mic4",
3163			"DMIC5", "MIC BIAS4",
3164			"MIC BIAS4", "Digital Mic5",
3165			"SpkrLeft IN", "SPK1 OUT",
3166			"SpkrRight IN", "SPK2 OUT";
3167
3168		qcom,msm-mbhc-hphl-swh = <0>;
3169		qcom,msm-mbhc-gnd-swh = <0>;
3170		qcom,msm-mbhc-hs-mic-max-threshold-mv = <1700>;
3171		qcom,msm-mbhc-hs-mic-min-threshold-mv = <50>;
3172		qcom,hph-en0-gpio = <&tavil_hph_en0>;
3173		qcom,hph-en1-gpio = <&tavil_hph_en1>;
3174		qcom,tavil-mclk-clk-freq = <9600000>;
3175		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
3176				<&loopback>, <&compress>, <&hostless>,
3177				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
3178				<&pcm_noirq>;
3179		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
3180				"msm-pcm-dsp.2", "msm-voip-dsp",
3181				"msm-pcm-voice", "msm-pcm-loopback",
3182				"msm-compress-dsp", "msm-pcm-hostless",
3183				"msm-pcm-afe", "msm-lsm-client",
3184				"msm-pcm-routing", "msm-cpe-lsm",
3185				"msm-compr-dsp", "msm-pcm-dsp-noirq";
3186		asoc-cpu = <&dai_hdmi>, <&dai_dp>,
3187				<&dai_mi2s0>, <&dai_mi2s1>,
3188				<&dai_mi2s2>, <&dai_mi2s3>,
3189				<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
3190				<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
3191				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
3192				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
3193				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
3194				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
3195				<&afe_proxy_tx>, <&incall_record_rx>,
3196				<&incall_record_tx>, <&incall_music_rx>,
3197				<&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
3198				<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>,
3199				<&usb_audio_rx>, <&usb_audio_tx>,
3200				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
3201				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
3202				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
3203				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
3204		asoc-cpu-names = "msm-dai-q6-hdmi.8",  "msm-dai-q6-dp.24608",
3205				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
3206				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
3207				"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
3208				"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
3209				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
3210				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
3211				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
3212				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
3213				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
3214				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
3215				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
3216				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
3217				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
3218				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
3219				"msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
3220				"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
3221				"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
3222				"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
3223				"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
3224				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
3225				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
3226		asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
3227		asoc-codec-names = "msm-stub-codec.1",
3228				   "msm-ext-disp-audio-codec-rx";
3229		qcom,wsa-max-devs = <2>;
3230		qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
3231				<&wsa881x_0213>, <&wsa881x_0214>;
3232		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
3233					  "SpkrLeft", "SpkrRight";
3234	};
3235
3236* SDM670 ASoC Machine driver
3237
3238Required properties:
3239- compatible : "qcom,sdm670-asoc-snd"
3240- qcom,model : The user-visible name of this sound card.
3241- qcom,msm-hs-micbias-type : This property is used to recognize the headset
3242  micbias type, internal or external.
3243- qcom,msm-mbhc-hphl-swh: This property is used to distinguish headset HPHL
3244switch type on target typically the switch type will be normally open or
3245normally close, value for this property 0 for normally close and 1 for
3246normally open.
3247-  qcom,msm-mbhc-gnd-swh: This property is used to distinguish headset GND
3248switch type on target typically the switch type will be normally open or
3249normally close, value for this property 0 for normally close and 1 for
3250normally open.
3251- qcom,audio-routing : A list of the connections between audio components.
3252- qcom,msm-gpios : Lists down all the gpio sets that are supported.
3253- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
3254mentioned in qcom,msm-gpios.
3255- pinctrl-names : The combinations of gpio sets from above that are supported in
3256the flavor.
3257- pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
3258
3259Optional properties:
3260- qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
3261- qcom,msm-micbias1-ext-cap : Boolean. Enable micbias1 external
3262capacitor mode.
3263- qcom,msm-micbias2-ext-cap : Boolean. Enable micbias2 external
3264capacitor mode.
3265- qcom,wsa-disable : Boolean. Disables WSA speaker dailinks from sound node.
3266- qcom,msm-spk-ext-pa : GPIO which enables external speaker pa.
3267- qcom,msm-mclk-freq : This property is used to inform machine driver about
3268mclk frequency needs to be configured for internal and external PA.
3269- asoc-platform: This is phandle list containing the references to platform device
3270		 nodes that are used as part of the sound card dai-links.
3271- asoc-platform-names: This property contains list of platform names. The order of
3272		       the platform names should match to that of the phandle order
3273		       given in "asoc-platform".
3274- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
3275	    that are used as part of the sound card dai-links.
3276 - asoc-cpu-names: This property contains list of cpu dai names. The order of the
3277 		  cpu dai names should match to that of the phandle order given.
3278 - asoc-codec: This is phandle list containing the references to codec dai device
3279 	nodes that are used as part of the sound card dai-links.
3280 - asoc-codec-names: This property contains list of codec dai names. The order of the
3281 	codec dai names should match to that of the phandle order given
3282 	in "asoc-codec".
3283 - qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
3284 - qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
3285 - qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
3286 - qcom,cdc-pdm-gpios : phandle for pdm gpios.
3287 - qcom,cdc-comp-gpios : phandle for compander gpios.
3288 - qcom,cdc-dmic-gpios : phandle for Digital mic clk and data gpios.
3289 - qcom,cdc-sdw-gpios : phandle for soundwire clk and data gpios.
3290 - qcom,pri-mi2s-gpios : phandle for primary MI2S clk, word select and data gpios.
3291 - qcom,sec-mi2s-gpios : phandle for secondary MI2S clk, word select and data gpios.
3292 - qcom,tert-mi2s-gpios : phandle for tertiary MI2S clk, word select and data gpios.
3293 - qcom,quat-mi2s-gpios : phandle for quaternary MI2S clk, word select and data gpios.
3294 - qcom,quin-mi2s-gpios : phandle for quinary MI2S clk, word select and data gpios.
3295 - qcom,msm-mbhc-moist-cfg: This property is used to set moisture detection
3296 		threshold values for different codecs. First parameter is V(voltage)
3297 		second one is i(current), third one is r (resistance). Depending on the
3298 		codec set corresponding element in array and set others to 0.
3299 
3300 Example:
3301 	 sound {
3302 		compatible = "qcom,sdm670-asoc-snd";
3303 		qcom,model = "sdm670-snd-card";
3304 		qcom,msm-mclk-freq = <9600000>;
3305 		qcom,msm-mbhc-hphl-swh = <0>;
3306 		qcom,msm-mbhc-gnd-swh = <0>;
3307 		qcom,msm-hs-micbias-type = "internal";
3308 		qcom,msm-micbias1-ext-cap;
3309		qcom,audio-routing =
3310			"RX_BIAS", "MCLK",
3311			"SPK_RX_BIAS", "MCLK",
3312			"INT_LDO_H", "MCLK",
3313			"MIC BIAS External", "Handset Mic",
3314			"MIC BIAS Internal2", "Headset Mic",
3315			"MIC BIAS External", "Secondary Mic",
3316			"AMIC1", "MIC BIAS External",
3317			"AMIC2", "MIC BIAS Internal2",
3318			"AMIC3", "MIC BIAS External";
3319		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
3320		qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
3321		qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
3322		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
3323		qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;
3324		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
3325				<&loopback>, <&compress>, <&hostless>,
3326				<&afe>, <&lsm>, <&routing>, <&lpa>;
3327		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
3328				"msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback",
3329				"msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe",
3330				"msm-lsm-client", "msm-pcm-routing", "msm-pcm-lpa";
3331		asoc-cpu = <&dai_pri_auxpcm>, <&dai_hdmi>,
3332				<&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>,
3333				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
3334				<&sb_3_rx>, <&sb_3_tx>, <&sb_4_rx>, <&sb_4_tx>,
3335				<&bt_sco_rx>, <&bt_sco_tx>, <&int_fm_rx>, <&int_fm_tx>,
3336				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>,
3337				<&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>,
3338				<&incall_music_2_rx>;
3339		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-hdmi.8",
3340				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
3341				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
3342				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
3343				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
3344				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
3345				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
3346				"msm-dai-q6-dev.12288", "msm-dai-q6-dev.12289",
3347				"msm-dai-q6-dev.12292", "msm-dai-q6-dev.12293",
3348				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
3349				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
3350				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
3351				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770";
3352		asoc-codec = <&stub_codec>;
3353		asoc-codec-names = "msm-stub-codec.1";
3354		qcom,wsa-max-devs = <2>;
3355		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
3356				<&wsa881x_213>, <&wsa881x_214>;
3357		qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
3358					  "SpkrRight", "SpkrLeft";
3359	};
3360
3361* SDM670 ASoC Slimbus Machine driver
3362
3363Required properties:
3364- compatible : "qcom,sdm670-asoc-snd-tasha" for tasha codec,
3365		"qcom,sdm670-asoc-snd-tavil" for tavil codec.
3366- qcom,model : The user-visible name of this sound card.
3367- qcom,msm-mclk-freq : MCLK frequency value for external codec
3368- qcom,msm-gpios : Lists down all the gpio sets that are supported.
3369- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
3370mentioned in qcom,msm-gpios. Say we have 2^N combinations for N GPIOs,
3371this would list all the 2^N combinations.
3372- pinctrl-names : The combinations of gpio sets from above that are supported in
3373the flavor. This can be sometimes same as qcom, pinctrl-names i.e with 2^N
3374combinations or will have less incase if some combination is not supported.
3375- pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
3376- qcom,audio-routing : A list of the connections between audio components.
3377- asoc-platform: This is phandle list containing the references to platform device
3378		 nodes that are used as part of the sound card dai-links.
3379- asoc-platform-names: This property contains list of platform names. The order of
3380		       the platform names should match to that of the phandle order
3381		       given in "asoc-platform".
3382- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
3383	    that are used as part of the sound card dai-links.
3384- asoc-cpu-names: This property contains list of cpu dai names. The order of the
3385		  cpu dai names should match to that of the phandle order given
3386		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
3387		  where the id (%d) field represents the back-end AFE port id that
3388		  this CPU dai is associated with.
3389- asoc-codec: This is phandle list containing the references to codec dai device
3390	      nodes that are used as part of the sound card dai-links.
3391- asoc-codec-names: This property contains list of codec dai names. The order of the
3392		    codec dai names should match to that of the phandle order given
3393		    in "asoc-codec".
3394Optional properties:
3395- qcom,cdc-us-euro-gpios : GPIO on which gnd/mic swap signal is coming.
3396- clock-names : clock name defined for external clock.
3397- clocks : external clock defined for codec clock.
3398- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
3399- qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
3400- qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
3401- qcom,pri-mi2s-gpios : phandle for primary MI2S clk, word select and data gpios.
3402- qcom,sec-mi2s-gpios : phandle for secondary MI2S clk, word select and data gpios.
3403- qcom,tert-mi2s-gpios : phandle for tertiary MI2S clk, word select and data gpios.
3404- qcom,quat-mi2s-gpios : phandle for quaternary MI2S clk, word select and data gpios.
3405- qcom,quin-mi2s-gpios : phandle for quinary MI2S clk, word select and data gpios.
3406
3407Example:
3408
3409	sound-9335 {
3410	compatible = "qcom,sdm670-asoc-snd-tasha";
3411	qcom,model = "sdm670-tasha-snd-card";
3412
3413	qcom,audio-routing =
3414		"RX_BIAS", "MCLK",
3415		"LDO_H", "MCLK",
3416		"AIF4 MAD", "MCLK",
3417		"ultrasound amp", "LINEOUT1",
3418		"ultrasound amp", "LINEOUT3",
3419		"AMIC1", "MIC BIAS1 Internal1",
3420		"MIC BIAS1 Internal1", "Handset Mic",
3421		"AMIC2", "MIC BIAS2 External",
3422		"MIC BIAS2 External", "Headset Mic",
3423		"AMIC3", "MIC BIAS2 External",
3424		"MIC BIAS2 External", "ANCRight Headset Mic",
3425		"AMIC4", "MIC BIAS2 External",
3426		"MIC BIAS2 External", "ANCLeft Headset Mic",
3427		"DMIC1", "MIC BIAS1 External",
3428		"MIC BIAS1 External", "Digital Mic1",
3429		"DMIC2", "MIC BIAS1 External",
3430		"MIC BIAS1 External", "Digital Mic2",
3431		"DMIC3", "MIC BIAS3 External",
3432		"MIC BIAS3 External", "Digital Mic3",
3433		"DMIC4", "MIC BIAS3 External",
3434		"MIC BIAS3 External", "Digital Mic4",
3435		"DMIC5", "MIC BIAS4 External",
3436		"MIC BIAS4 External", "Digital Mic5",
3437		"DMIC6", "MIC BIAS4 External",
3438		"MIC BIAS4 External", "Digital Mic6";
3439
3440		qcom,msm-mbhc-hphl-swh = <0>;
3441		qcom,msm-mbhc-gnd-swh = <0>;
3442		qcom,msm-mclk-freq = <9600000>;
3443		qcom,msm-gpios =
3444			"slim",
3445			"us_eu_gpio";
3446		qcom,pinctrl-names =
3447			"all_off",
3448			"slim_act",
3449			"us_eu_gpio_act",
3450 			"slim_us_eu_gpio_act";
3451 		pinctrl-names =
3452 			"all_off",
3453 			"slim_act",
3454 			"us_eu_gpio_act",
3455 			"slim_us_eu_gpio_act";
3456 		pinctrl-0 = <&cdc_slim_lines_sus &cross_conn_det_sus>;
3457 		pinctrl-1 = <&cdc_slim_lines_act &cross_conn_det_sus>;
3458 		pinctrl-2 = <&cdc_slim_lines_sus &cross_conn_det_act>;
3459 		pinctrl-3 = <&cdc_slim_lines_act &cross_conn_det_act>;
3460 		qcom,cdc-us-euro-gpios = <&msm_gpio 63 0>;
3461 		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
3462 				<&loopback>, <&compress>, <&hostless>,
3463 				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>;
3464 		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
3465 				"msm-pcm-dsp.2", "msm-voip-dsp",
3466 				"msm-pcm-voice", "msm-pcm-loopback",
3467 				"msm-compress-dsp", "msm-pcm-hostless",
3468 				"msm-pcm-afe", "msm-lsm-client",
3469 				"msm-pcm-routing", "msm-cpe-lsm",
3470 				"msm-compr-dsp";
3471 		asoc-cpu = <&dai_hdmi>,
3472 				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
3473 				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
3474 				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
3475 				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
3476 				<&afe_proxy_tx>, <&incall_record_rx>,
3477 				<&incall_record_tx>, <&incall_music_rx>,
3478 				<&incall_music_2_rx>, <&sb_5_rx>;
3479 		asoc-cpu-names = "msm-dai-q6-hdmi.8",
3480 				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
3481 				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
3482				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
3483				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
3484				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
3485				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
3486				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
3487				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
3488				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
3489				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394";
3490		asoc-codec = <&stub_codec>;
3491		asoc-codec-names = "msm-stub-codec.1";
3492		qcom,wsa-max-devs = <2>;
3493		qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
3494				<&wsa881x_213>, <&wsa881x_214>;
3495		qcom,wsa-aux-dev-prefix = "SpkrRight", "SpkrLeft",
3496					  "SpkrRight", "SpkrLeft";
3497	};
3498
3499* QCS605 LC  ASoC Machine driver
3500
3501Required properties:
3502- compatible : "qcom,qcs605-dig-asoc-snd"
3503- qcom,model : The user-visible name of this sound card.
3504- qcom,audio-routing : A list of the connections between audio components.
3505- qcom,msm-gpios : Lists down all the gpio sets that are supported.
3506- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
3507mentioned in qcom,msm-gpios.
3508- pinctrl-names : The combinations of gpio sets from above that are supported in
3509the flavor.
3510- pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
3511
3512Optional properties:
3513- qcom,wsa-disable : Boolean. Disables WSA speaker dailinks from sound node.
3514- qcom,msm-spk-ext-pa : GPIO which enables external speaker pa.
3515- qcom,msm-mclk-freq : This property is used to inform machine driver about
3516mclk frequency needs to be configured for internal and external PA.
3517- asoc-platform: This is phandle list containing the references to platform device
3518		 nodes that are used as part of the sound card dai-links.
3519- asoc-platform-names: This property contains list of platform names. The order of
3520		       the platform names should match to that of the phandle order
3521		       given in "asoc-platform".
3522- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
3523	    that are used as part of the sound card dai-links.
3524- asoc-cpu-names: This property contains list of cpu dai names. The order of the
3525		  cpu dai names should match to that of the phandle order given.
3526- asoc-codec: This is phandle list containing the references to codec dai device
3527	nodes that are used as part of the sound card dai-links.
3528- asoc-codec-names: This property contains list of codec dai names. The order of the
3529	codec dai names should match to that of the phandle order given
3530	in "asoc-codec".
3531- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
3532- qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
3533- qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
3534- qcom,cdc-dmic-gpios : phandle for Digital mic clk and data gpios.
3535- qcom,cdc-sdw-gpios : phandle for soundwire clk and data gpios.
3536- qcom,pri-mi2s-gpios : phandle for primary MI2S clk, word select and data gpios.
3537- qcom,sec-mi2s-gpios : phandle for secondary MI2S clk, word select and data gpios.
3538- qcom,tert-mi2s-gpios : phandle for tertiary MI2S clk, word select and data gpios.
3539- qcom,quat-mi2s-gpios : phandle for quaternary MI2S clk, word select and data gpios.
3540- qcom,quin-mi2s-gpios : phandle for quinary MI2S clk, word select and data gpios.
3541
3542Example:
3543	 sound {
3544		compatible = "qcom,qcs605-dig-asoc-snd";
3545		qcom,model = "qcs605-lc-snd-card";
3546		qcom,audio-routing =
3547			"RX_BIAS", "INT_MCLK0",
3548			"SPK_RX_BIAS", "INT_MCLK0",
3549			"DMIC1", "DIGITAL_REGULATOR",
3550			"DIGITAL_REGULATOR", "Digital Mic1",
3551			"DMIC2", "DIGITAL_REGULATOR",
3552			"DIGITAL_REGULATOR", "Digital Mic2",
3553			"DMIC3", "DIGITAL_REGULATOR",
3554			"DIGITAL_REGULATOR", "Digital Mic3",
3555			"DMIC4", "DIGITAL_REGULATOR",
3556			"DIGITAL_REGULATOR", "Digital Mic4",
3557			"SpkrLeft IN", "SPK1 OUT",
3558			"SpkrRight IN", "SPK2 OUT";
3559
3560		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>;
3561		qcom,msm-mclk-freq = <9600000>;
3562		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
3563
3564		asoc-codec = <&stub_codec>, <&msm_digital_codec>,
3565				<&msm_sdw_codec>;
3566		asoc-codec-names = "msm-stub-codec.1", "msm-dig-codec",
3567					"msm_sdw_codec";
3568
3569		qcom,wsa-max-devs = <2>;
3570		qcom,wsa-devs = <&wsa881x_211_en>, <&wsa881x_212_en>,
3571				<&wsa881x_213_en>, <&wsa881x_214_en>;
3572		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
3573					"SpkrLeft", "SpkrRight";
3574	}
3575
3576* QCS605 IPcamera  ASoC Machine driver
3577
3578Required properties:
3579- compatible : "qcom,qcs605-asoc-snd-tavil"
3580- qcom,model : The user-visible name of this sound card.
3581- qcom,audio-routing : A list of the connections between audio components.
3582- qcom,msm-gpios : Lists down all the gpio sets that are supported.
3583- qcom,pinctrl-names : Lists all the possible combinations of the gpio sets
3584mentioned in qcom,msm-gpios.
3585- pinctrl-names : The combinations of gpio sets from above that are supported in
3586the flavor.
3587- pinctrl-# : Pinctrl states as mentioned in pinctrl-names.
3588
3589Optional properties:
3590- qcom,wsa-disable : Boolean. Disables WSA speaker dailinks from sound node.
3591- qcom,msm-spk-ext-pa : GPIO which enables external speaker pa.
3592- qcom,msm-mclk-freq : This property is used to inform machine driver about
3593mclk frequency needs to be configured for internal and external PA.
3594- asoc-platform: This is phandle list containing the references to platform device
3595		 nodes that are used as part of the sound card dai-links.
3596- asoc-platform-names: This property contains list of platform names. The order of
3597		       the platform names should match to that of the phandle order
3598		       given in "asoc-platform".
3599- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
3600	    that are used as part of the sound card dai-links.
3601- asoc-cpu-names: This property contains list of cpu dai names. The order of the
3602		  cpu dai names should match to that of the phandle order given.
3603- asoc-codec: This is phandle list containing the references to codec dai device
3604	nodes that are used as part of the sound card dai-links.
3605- asoc-codec-names: This property contains list of codec dai names. The order of the
3606	codec dai names should match to that of the phandle order given
3607	in "asoc-codec".
3608- qcom,wsa-max-devs : Maximum number of WSA881x devices present in the target
3609- qcom,wsa-devs : List of phandles for all possible WSA881x devices supported for the target
3610- qcom,wsa-aux-dev-prefix : Name prefix with Left/Right configuration for WSA881x device
3611- qcom,cdc-dmic-gpios : phandle for Digital mic clk and data gpios.
3612- qcom,cdc-sdw-gpios : phandle for soundwire clk and data gpios.
3613- qcom,pri-mi2s-gpios : phandle for primary MI2S clk, word select and data gpios.
3614- qcom,sec-mi2s-gpios : phandle for secondary MI2S clk, word select and data gpios.
3615- qcom,tert-mi2s-gpios : phandle for tertiary MI2S clk, word select and data gpios.
3616 - qcom,quat-mi2s-gpios : phandle for quaternary MI2S clk, word select and data gpios.
3617 - qcom,quin-mi2s-gpios : phandle for quinary MI2S clk, word select and data gpios.
3618 
3619 Example:
3620 	 sound {
3621 		compatible = "qcom,qcs605-asoc-snd-tavil";
3622 		qcom,model = "qcs605-tavil-snd-card";
3623 		qcom,audio-routing =
3624 			"RX_BIAS", "INT_MCLK0",
3625 			"SPK_RX_BIAS", "INT_MCLK0",
3626 			"DMIC1", "DIGITAL_REGULATOR",
3627 			"DIGITAL_REGULATOR", "Digital Mic1",
3628 			"DMIC2", "DIGITAL_REGULATOR",
3629 			"DIGITAL_REGULATOR", "Digital Mic2",
3630 			"DMIC3", "DIGITAL_REGULATOR",
3631 			"DIGITAL_REGULATOR", "Digital Mic3",
3632 			"DMIC4", "DIGITAL_REGULATOR",
3633 			"DIGITAL_REGULATOR", "Digital Mic4",
3634 			"SpkrLeft IN", "SPK1 OUT",
3635 			"SpkrRight IN", "SPK2 OUT";
3636 
3637 		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>;
3638 		qcom,msm-mclk-freq = <9600000>;
3639 		qcom,msm-gpios =
3640 			"slim",
3641 			"us_eu_gpio";
3642 		qcom,pinctrl-names =
3643 			"all_off",
3644 			"slim_act",
3645 			"us_eu_gpio_act",
3646 			"slim_us_eu_gpio_act";
3647 		pinctrl-names =
3648 			"all_off",
3649 			"slim_act",
3650 			"us_eu_gpio_act",
3651 			"slim_us_eu_gpio_act";
3652 		pinctrl-0 = <&cdc_slim_lines_sus &cross_conn_det_sus>;
3653 		pinctrl-1 = <&cdc_slim_lines_act &cross_conn_det_sus>;
3654 		pinctrl-2 = <&cdc_slim_lines_sus &cross_conn_det_act>;
3655 		pinctrl-3 = <&cdc_slim_lines_act &cross_conn_det_act>;
3656 		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
3657 
3658 		asoc-codec = <&stub_codec>, <&msm_digital_codec>,
3659 				<&msm_sdw_codec>;
3660 		asoc-codec-names = "msm-stub-codec.1", "msm-dig-codec",
3661 					"msm_sdw_codec";
3662 
3663 		qcom,wsa-max-devs = <2>;
3664 		qcom,wsa-devs = <&wsa881x_211_en>, <&wsa881x_212_en>,
3665 				<&wsa881x_213_en>, <&wsa881x_214_en>;
3666 		qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
3667 					"SpkrLeft", "SpkrRight";
3668 	}
3669 

 

Indexes created Sun Aug 23 02:26:38 CST 2020

你可能感兴趣的:(android,配置文件,linux,底层文件操作,Linux,GPIO)