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