xref: /linux/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml (revision 0bfa20b18acbcdd133d41e04e07a2d78bcc04bc5)
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-rx-macro.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: LPASS(Low Power Audio Subsystem) RX Macro audio codec
8
9maintainers:
10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12properties:
13  compatible:
14    oneOf:
15      - enum:
16          - qcom,sc7280-lpass-rx-macro
17          - qcom,sm8250-lpass-rx-macro
18          - qcom,sm8450-lpass-rx-macro
19          - qcom,sm8550-lpass-rx-macro
20          - qcom,sc8280xp-lpass-rx-macro
21      - items:
22          - const: qcom,sm8650-lpass-rx-macro
23          - const: qcom,sm8550-lpass-rx-macro
24
25  reg:
26    maxItems: 1
27
28  "#sound-dai-cells":
29    const: 1
30
31  '#clock-cells':
32    const: 0
33
34  clocks:
35    minItems: 3
36    maxItems: 5
37
38  clock-names:
39    minItems: 3
40    maxItems: 5
41
42  clock-output-names:
43    maxItems: 1
44
45  power-domains:
46    maxItems: 2
47
48  power-domain-names:
49    items:
50      - const: macro
51      - const: dcodec
52
53required:
54  - compatible
55  - reg
56  - "#sound-dai-cells"
57
58allOf:
59  - $ref: dai-common.yaml#
60  - if:
61      properties:
62        compatible:
63          enum:
64            - qcom,sc7280-lpass-rx-macro
65    then:
66      properties:
67        clock-names:
68          oneOf:
69            - items:   # for ADSP based platforms
70                - const: mclk
71                - const: npl
72                - const: macro
73                - const: dcodec
74                - const: fsgen
75            - items:   # for ADSP bypass based platforms
76                - const: mclk
77                - const: npl
78                - const: fsgen
79
80  - if:
81      properties:
82        compatible:
83          enum:
84            - qcom,sc8280xp-lpass-rx-macro
85            - qcom,sm8250-lpass-rx-macro
86            - qcom,sm8450-lpass-rx-macro
87    then:
88      properties:
89        clocks:
90          minItems: 5
91          maxItems: 5
92        clock-names:
93          items:
94            - const: mclk
95            - const: npl
96            - const: macro
97            - const: dcodec
98            - const: fsgen
99
100  - if:
101      properties:
102        compatible:
103          contains:
104            enum:
105              - qcom,sm8550-lpass-rx-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/sound/qcom,q6afe.h>
123    codec@3200000 {
124      compatible = "qcom,sm8250-lpass-rx-macro";
125      reg = <0x3200000 0x1000>;
126      #sound-dai-cells = <1>;
127      #clock-cells = <0>;
128      clocks = <&audiocc 0>,
129               <&audiocc 1>,
130               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
131               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
132               <&vamacro>;
133      clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
134      clock-output-names = "mclk";
135    };
136