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    enum:
15      - qcom,sc7280-lpass-va-macro
16      - qcom,sm8250-lpass-va-macro
17      - qcom,sm8450-lpass-va-macro
18      - qcom,sm8550-lpass-va-macro
19      - qcom,sc8280xp-lpass-va-macro
20
21  reg:
22    maxItems: 1
23
24  "#sound-dai-cells":
25    const: 1
26
27  '#clock-cells':
28    const: 0
29
30  clocks:
31    minItems: 1
32    maxItems: 4
33
34  clock-names:
35    minItems: 1
36    maxItems: 4
37
38  clock-output-names:
39    maxItems: 1
40
41  power-domains:
42    maxItems: 2
43
44  power-domain-names:
45    items:
46      - const: macro
47      - const: dcodec
48
49  qcom,dmic-sample-rate:
50    description: dmic sample rate
51    $ref: /schemas/types.yaml#/definitions/uint32
52
53  vdd-micb-supply:
54    description: phandle to voltage regulator of MIC Bias
55
56required:
57  - compatible
58  - reg
59  - "#sound-dai-cells"
60  - clock-names
61  - clocks
62
63allOf:
64  - $ref: dai-common.yaml#
65
66  - if:
67      properties:
68        compatible:
69          contains:
70            const: qcom,sc7280-lpass-va-macro
71    then:
72      properties:
73        clocks:
74          maxItems: 1
75        clock-names:
76          items:
77            - const: mclk
78
79  - if:
80      properties:
81        compatible:
82          contains:
83            const: qcom,sm8250-lpass-va-macro
84    then:
85      properties:
86        clocks:
87          minItems: 3
88          maxItems: 3
89        clock-names:
90          items:
91            - const: mclk
92            - const: macro
93            - const: dcodec
94
95  - if:
96      properties:
97        compatible:
98          contains:
99            enum:
100              - qcom,sc8280xp-lpass-va-macro
101              - qcom,sm8450-lpass-va-macro
102    then:
103      properties:
104        clocks:
105          minItems: 4
106          maxItems: 4
107        clock-names:
108          items:
109            - const: mclk
110            - const: macro
111            - const: dcodec
112            - const: npl
113
114  - if:
115      properties:
116        compatible:
117          contains:
118            enum:
119              - qcom,sm8550-lpass-va-macro
120    then:
121      properties:
122        clocks:
123          minItems: 3
124          maxItems: 3
125        clock-names:
126          items:
127            - const: mclk
128            - const: macro
129            - const: dcodec
130
131unevaluatedProperties: false
132
133examples:
134  - |
135    #include <dt-bindings/sound/qcom,q6afe.h>
136    codec@3370000 {
137      compatible = "qcom,sm8250-lpass-va-macro";
138      reg = <0x3370000 0x1000>;
139      #sound-dai-cells = <1>;
140      #clock-cells = <0>;
141      clocks = <&aoncc 0>,
142               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
143               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
144      clock-names = "mclk", "macro", "dcodec";
145      clock-output-names = "fsgen";
146      qcom,dmic-sample-rate = <600000>;
147      vdd-micb-supply = <&vreg_s4a_1p8>;
148    };
149