xref: /linux/Documentation/devicetree/bindings/sound/qcom,lpass-va-macro.yaml (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
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,lpass-va-macro.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: LPASS(Low Power Audio Subsystem) VA Macro audio codec
8
9maintainers:
10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - qcom,sc7280-lpass-va-macro
17          - qcom,sm8250-lpass-va-macro
18          - qcom,sm8450-lpass-va-macro
19          - qcom,sm8550-lpass-va-macro
20          - qcom,sc8280xp-lpass-va-macro
21      - items:
22          - enum:
23              - qcom,glymur-lpass-va-macro
24              - qcom,sm8650-lpass-va-macro
25              - qcom,sm8750-lpass-va-macro
26              - qcom,x1e80100-lpass-va-macro
27          - const: qcom,sm8550-lpass-va-macro
28
29  reg:
30    maxItems: 1
31
32  "#sound-dai-cells":
33    const: 1
34
35  '#clock-cells':
36    const: 0
37
38  clocks:
39    minItems: 1
40    maxItems: 4
41
42  clock-names:
43    minItems: 1
44    items:
45      - const: mclk
46      - const: macro
47      - const: dcodec
48      - const: npl
49
50  clock-output-names:
51    maxItems: 1
52
53  power-domains:
54    maxItems: 2
55
56  power-domain-names:
57    items:
58      - const: macro
59      - const: dcodec
60
61  qcom,dmic-sample-rate:
62    description: dmic sample rate
63    $ref: /schemas/types.yaml#/definitions/uint32
64
65  vdd-micb-supply:
66    description: phandle to voltage regulator of MIC Bias
67
68required:
69  - compatible
70  - reg
71  - "#sound-dai-cells"
72  - clock-names
73  - clocks
74
75allOf:
76  - $ref: dai-common.yaml#
77
78  - if:
79      properties:
80        compatible:
81          contains:
82            const: qcom,sc7280-lpass-va-macro
83
84    then:
85      if:
86        required:
87          - power-domains
88      then:
89        properties:
90          clocks:
91            maxItems: 1
92          clock-names:
93            maxItems: 1
94      else:
95        properties:
96          clocks:
97            minItems: 3
98            maxItems: 3
99          clock-names:
100            minItems: 3
101            maxItems: 3
102
103  - if:
104      properties:
105        compatible:
106          contains:
107            const: qcom,sm8250-lpass-va-macro
108    then:
109      properties:
110        clocks:
111          minItems: 3
112          maxItems: 3
113        clock-names:
114          minItems: 3
115          maxItems: 3
116
117  - if:
118      properties:
119        compatible:
120          contains:
121            enum:
122              - qcom,sc8280xp-lpass-va-macro
123              - qcom,sm8450-lpass-va-macro
124    then:
125      properties:
126        clocks:
127          minItems: 4
128          maxItems: 4
129        clock-names:
130          minItems: 4
131          maxItems: 4
132
133  - if:
134      properties:
135        compatible:
136          contains:
137            enum:
138              - qcom,sm8550-lpass-va-macro
139    then:
140      properties:
141        clocks:
142          minItems: 3
143          maxItems: 3
144        clock-names:
145          minItems: 3
146          maxItems: 3
147
148unevaluatedProperties: false
149
150examples:
151  - |
152    #include <dt-bindings/sound/qcom,q6afe.h>
153    codec@3370000 {
154      compatible = "qcom,sm8250-lpass-va-macro";
155      reg = <0x3370000 0x1000>;
156      #sound-dai-cells = <1>;
157      #clock-cells = <0>;
158      clocks = <&aoncc 0>,
159               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
160               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
161      clock-names = "mclk", "macro", "dcodec";
162      clock-output-names = "fsgen";
163      qcom,dmic-sample-rate = <600000>;
164      vdd-micb-supply = <&vreg_s4a_1p8>;
165    };
166