Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / qcom,lpass-wsa-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-wsa-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     oneOf:
15       - enum:
16           - qcom,sc7280-lpass-wsa-macro
17           - qcom,sm8250-lpass-wsa-macro
18           - qcom,sm8450-lpass-wsa-macro
19           - qcom,sm8550-lpass-wsa-macro
20           - qcom,sc8280xp-lpass-wsa-macro
21       - items:
22           - enum:
23               - qcom,sm8650-lpass-wsa-macro
24               - qcom,x1e80100-lpass-wsa-macro
25           - const: qcom,sm8550-lpass-wsa-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: 4
38     maxItems: 6
39
40   clock-names:
41     minItems: 4
42     maxItems: 6
43
44   clock-output-names:
45     maxItems: 1
46
47   qcom,dmic-sample-rate:
48     description: dmic sample rate
49     $ref: /schemas/types.yaml#/definitions/uint32
50
51   vdd-micb-supply:
52     description: phandle to voltage regulator of MIC Bias
53
54 required:
55   - compatible
56   - reg
57   - "#sound-dai-cells"
58
59 allOf:
60   - $ref: dai-common.yaml#
61
62   - if:
63       properties:
64         compatible:
65           enum:
66             - qcom,sc7280-lpass-wsa-macro
67             - qcom,sm8450-lpass-wsa-macro
68             - qcom,sc8280xp-lpass-wsa-macro
69     then:
70       properties:
71         clocks:
72           minItems: 5
73           maxItems: 5
74         clock-names:
75           items:
76             - const: mclk
77             - const: npl
78             - const: macro
79             - const: dcodec
80             - const: fsgen
81
82   - if:
83       properties:
84         compatible:
85           enum:
86             - qcom,sm8250-lpass-wsa-macro
87     then:
88       properties:
89         clocks:
90           minItems: 6
91         clock-names:
92           items:
93             - const: mclk
94             - const: npl
95             - const: macro
96             - const: dcodec
97             - const: va
98             - const: fsgen
99
100   - if:
101       properties:
102         compatible:
103           contains:
104             enum:
105               - qcom,sm8550-lpass-wsa-macro
106     then:
107       properties:
108         clocks:
109           minItems: 4
110           maxItems: 4
111         clock-names:
112           items:
113             - const: mclk
114             - const: macro
115             - const: dcodec
116             - const: fsgen
117
118 unevaluatedProperties: false
119
120 examples:
121   - |
122     #include <dt-bindings/clock/qcom,sm8250-lpass-aoncc.h>
123     #include <dt-bindings/sound/qcom,q6afe.h>
124     codec@3240000 {
125       compatible = "qcom,sm8250-lpass-wsa-macro";
126       reg = <0x3240000 0x1000>;
127       #sound-dai-cells = <1>;
128       #clock-cells = <0>;
129       clocks = <&audiocc 1>,
130                <&audiocc 0>,
131                <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
132                <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
133                <&aoncc LPASS_CDC_VA_MCLK>,
134                <&vamacro>;
135       clock-names = "mclk", "npl", "macro", "dcodec", "va", "fsgen";
136       clock-output-names = "mclk";
137     };