xref: /freebsd/sys/contrib/device-tree/Bindings/sound/qcom,lpass-wsa-macro.yaml (revision 53120fbb68952b7d620c2c0e1cf05c5017fc1b27)
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
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-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
54required:
55  - compatible
56  - reg
57  - "#sound-dai-cells"
58
59allOf:
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
118unevaluatedProperties: false
119
120examples:
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    };
138