Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / qcom,lpass-va-macro.yaml
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
7 title: LPASS(Low Power Audio Subsystem) VA Macro audio codec
8
9 maintainers:
10   - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12 properties:
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
56 required:
57   - compatible
58   - reg
59   - "#sound-dai-cells"
60   - clock-names
61   - clocks
62
63 allOf:
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
131 unevaluatedProperties: false
132
133 examples:
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     };