xref: /linux/Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml (revision 7f4f3b14e8079ecde096bd734af10e30d40c27b7)
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          - enum:
23              - qcom,sm8650-lpass-rx-macro
24              - qcom,sm8750-lpass-rx-macro
25              - qcom,x1e80100-lpass-rx-macro
26          - const: qcom,sm8550-lpass-rx-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: 3
39    maxItems: 5
40
41  clock-names:
42    minItems: 3
43    maxItems: 5
44
45  clock-output-names:
46    maxItems: 1
47
48  power-domains:
49    maxItems: 2
50
51  power-domain-names:
52    items:
53      - const: macro
54      - const: dcodec
55
56required:
57  - compatible
58  - reg
59  - "#sound-dai-cells"
60
61allOf:
62  - $ref: dai-common.yaml#
63  - if:
64      properties:
65        compatible:
66          enum:
67            - qcom,sc7280-lpass-rx-macro
68    then:
69      properties:
70        clock-names:
71          oneOf:
72            - items:   # for ADSP based platforms
73                - const: mclk
74                - const: npl
75                - const: macro
76                - const: dcodec
77                - const: fsgen
78            - items:   # for ADSP bypass based platforms
79                - const: mclk
80                - const: npl
81                - const: fsgen
82
83  - if:
84      properties:
85        compatible:
86          enum:
87            - qcom,sc8280xp-lpass-rx-macro
88            - qcom,sm8250-lpass-rx-macro
89            - qcom,sm8450-lpass-rx-macro
90    then:
91      properties:
92        clocks:
93          minItems: 5
94          maxItems: 5
95        clock-names:
96          items:
97            - const: mclk
98            - const: npl
99            - const: macro
100            - const: dcodec
101            - const: fsgen
102
103  - if:
104      properties:
105        compatible:
106          contains:
107            enum:
108              - qcom,sm8550-lpass-rx-macro
109    then:
110      properties:
111        clocks:
112          minItems: 4
113          maxItems: 4
114        clock-names:
115          items:
116            - const: mclk
117            - const: macro
118            - const: dcodec
119            - const: fsgen
120
121unevaluatedProperties: false
122
123examples:
124  - |
125    #include <dt-bindings/sound/qcom,q6afe.h>
126    codec@3200000 {
127      compatible = "qcom,sm8250-lpass-rx-macro";
128      reg = <0x3200000 0x1000>;
129      #sound-dai-cells = <1>;
130      #clock-cells = <0>;
131      clocks = <&audiocc 0>,
132               <&audiocc 1>,
133               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
134               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
135               <&vamacro>;
136      clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
137      clock-output-names = "mclk";
138    };
139