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