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