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