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