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