xref: /linux/Documentation/devicetree/bindings/sound/qcom,apq8016-sbc-sndcard.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/qcom,apq8016-sbc-sndcard.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm APQ8016 and similar sound cards
8
9maintainers:
10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11  - Stephan Gerhold <stephan@gerhold.net>
12
13properties:
14  compatible:
15    enum:
16      - qcom,apq8016-sbc-sndcard
17      - qcom,msm8916-qdsp6-sndcard
18
19  reg:
20    items:
21      - description: Microphone I/O mux register address
22      - description: Speaker I/O mux register address
23
24  reg-names:
25    items:
26      - const: mic-iomux
27      - const: spkr-iomux
28
29  audio-routing:
30    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
31    description:
32      A list of the connections between audio components. Each entry is a
33      pair of strings, the first being the connection's sink, the second
34      being the connection's source. Valid names could be power supplies,
35      MicBias of codec and the jacks on the board.
36
37  aux-devs:
38    $ref: /schemas/types.yaml#/definitions/phandle-array
39    description: |
40      List of phandles pointing to auxiliary devices, such
41      as amplifiers, to be added to the sound card.
42
43  model:
44    $ref: /schemas/types.yaml#/definitions/string
45    description: User visible long sound card name
46
47  pin-switches:
48    description: List of widget names for which pin switches should be created.
49    $ref: /schemas/types.yaml#/definitions/string-array
50
51  widgets:
52    description: User specified audio sound widgets.
53    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
54
55patternProperties:
56  ".*-dai-link$":
57    description:
58      Each subnode represents a dai link. Subnodes of each dai links would be
59      cpu/codec dais.
60
61    type: object
62
63    properties:
64      link-name:
65        description: Indicates dai-link name and PCM stream name.
66        $ref: /schemas/types.yaml#/definitions/string
67        maxItems: 1
68
69      cpu:
70        description: Holds subnode which indicates cpu dai.
71        type: object
72        additionalProperties: false
73
74        properties:
75          sound-dai:
76            maxItems: 1
77
78      platform:
79        description: Holds subnode which indicates platform dai.
80        type: object
81        additionalProperties: false
82
83        properties:
84          sound-dai:
85            maxItems: 1
86
87      codec:
88        description: Holds subnode which indicates codec dai.
89        type: object
90        additionalProperties: false
91
92        properties:
93          sound-dai:
94            minItems: 1
95            maxItems: 8
96
97    required:
98      - link-name
99      - cpu
100
101    additionalProperties: false
102
103required:
104  - compatible
105  - reg
106  - reg-names
107  - model
108
109additionalProperties: false
110
111examples:
112  - |
113    #include <dt-bindings/sound/qcom,lpass.h>
114    sound@7702000 {
115        compatible = "qcom,apq8016-sbc-sndcard";
116        reg = <0x07702000 0x4>, <0x07702004 0x4>;
117        reg-names = "mic-iomux", "spkr-iomux";
118
119        model = "DB410c";
120        audio-routing =
121            "AMIC2", "MIC BIAS Internal2",
122            "AMIC3", "MIC BIAS External1";
123
124        pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
125        pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
126        pinctrl-names = "default", "sleep";
127
128        quaternary-dai-link {
129            link-name = "ADV7533";
130            cpu {
131                sound-dai = <&lpass MI2S_QUATERNARY>;
132            };
133            codec {
134                sound-dai = <&adv_bridge 0>;
135            };
136        };
137
138        primary-dai-link {
139            link-name = "WCD";
140            cpu {
141                sound-dai = <&lpass MI2S_PRIMARY>;
142            };
143            codec {
144                sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
145            };
146        };
147
148        tertiary-dai-link {
149            link-name = "WCD-Capture";
150            cpu {
151                sound-dai = <&lpass MI2S_TERTIARY>;
152            };
153            codec {
154                sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
155            };
156        };
157    };
158
159  - |
160    #include <dt-bindings/sound/qcom,q6afe.h>
161    #include <dt-bindings/sound/qcom,q6asm.h>
162    sound@7702000 {
163        compatible = "qcom,msm8916-qdsp6-sndcard";
164        reg = <0x07702000 0x4>, <0x07702004 0x4>;
165        reg-names = "mic-iomux", "spkr-iomux";
166
167        model = "msm8916";
168        widgets =
169            "Speaker", "Speaker",
170            "Headphone", "Headphones";
171        pin-switches = "Speaker";
172        audio-routing =
173            "Speaker", "Speaker Amp OUT",
174            "Speaker Amp IN", "HPH_R",
175            "Headphones", "HPH_L",
176            "Headphones", "HPH_R",
177            "AMIC1", "MIC BIAS Internal1",
178            "AMIC2", "MIC BIAS Internal2",
179            "AMIC3", "MIC BIAS Internal3";
180        aux-devs = <&speaker_amp>;
181
182        pinctrl-names = "default", "sleep";
183        pinctrl-0 = <&cdc_pdm_lines_act>;
184        pinctrl-1 = <&cdc_pdm_lines_sus>;
185
186        mm1-dai-link {
187            link-name = "MultiMedia1";
188            cpu {
189                sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
190            };
191        };
192
193        primary-dai-link {
194            link-name = "Primary MI2S";
195            cpu {
196                sound-dai = <&q6afedai PRIMARY_MI2S_RX>;
197            };
198            platform {
199                sound-dai = <&q6routing>;
200            };
201            codec {
202                sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
203            };
204        };
205    };
206