]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/sound/qcom,q6dsp-lpass-ports.yaml
Import device-tree files from Linux 5.16
[FreeBSD/FreeBSD.git] / Bindings / sound / qcom,q6dsp-lpass-ports.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: "http://devicetree.org/schemas/sound/qcom,q6dsp-lpass-ports.yaml#"
5 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7 title: Qualcomm DSP LPASS(Low Power Audio SubSystem) Audio Ports binding
8
9 maintainers:
10   - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12 description: |
13   This binding describes the Qualcomm DSP LPASS Audio ports
14
15 properties:
16   compatible:
17     enum:
18       - qcom,q6afe-dais
19       - qcom,q6apm-lpass-dais
20
21   reg:
22     maxItems: 1
23
24   '#sound-dai-cells':
25     const: 1
26
27   '#address-cells':
28     const: 1
29
30   '#size-cells':
31     const: 0
32
33 #Digital Audio Interfaces
34 patternProperties:
35   '^dai@[0-9]+$':
36     type: object
37     description:
38       Q6DSP Digital Audio Interfaces.
39
40     properties:
41       reg:
42         description:
43           Digital Audio Interface ID
44
45       qcom,sd-lines:
46         $ref: /schemas/types.yaml#/definitions/uint32-array
47         description:
48           List of serial data lines used by this dai.should be one or more of the 0-3 sd lines.
49         minItems: 1
50         maxItems: 4
51         uniqueItems: true
52         items:
53           minimum: 0
54           maximum: 3
55
56       qcom,tdm-sync-mode:
57         $ref: /schemas/types.yaml#/definitions/uint32
58         enum: [0, 1, 2]
59         description:
60           TDM Synchronization mode
61             0 = Short sync bit mode
62             1 = Long sync mode
63             2 = Short sync slot mode
64
65       qcom,tdm-sync-src:
66         $ref: /schemas/types.yaml#/definitions/uint32
67         enum: [0, 1]
68         description:
69           TDM Synchronization source
70             0 = External source
71             1 = Internal source
72
73       qcom,tdm-data-out:
74         $ref: /schemas/types.yaml#/definitions/uint32
75         enum: [0, 1]
76         description:
77           TDM Data out signal to drive with other masters
78             0 = Disable
79             1 = Enable
80
81       qcom,tdm-invert-sync:
82         $ref: /schemas/types.yaml#/definitions/uint32
83         enum: [0, 1]
84         description:
85           TDM Invert the sync
86             0 = Normal
87             1 = Invert
88
89       qcom,tdm-data-delay:
90         $ref: /schemas/types.yaml#/definitions/uint32
91         enum: [0, 1, 2]
92         description:
93           TDM Number of bit clock to delay data
94             0 = 0 bit clock cycle
95             1 = 1 bit clock cycle
96             2 = 2 bit clock cycle
97
98       qcom,tdm-data-align:
99         $ref: /schemas/types.yaml#/definitions/uint32
100         enum: [0, 1]
101         description:
102           Indicate how data is packed within the slot. For example, 32 slot
103           width in case of sample bit width is 24TDM Invert the sync.
104             0 = MSB
105             1 = LSB
106
107     required:
108       - reg
109
110     allOf:
111       - if:
112           properties:
113             reg:
114               contains:
115                 # TDM DAI ID range from PRIMARY_TDM_RX_0 - QUINARY_TDM_TX_7
116                 items:
117                   minimum: 24
118                   maximum: 103
119         then:
120           required:
121             - qcom,tdm-sync-mode
122             - qcom,tdm-sync-src
123             - qcom,tdm-data-out
124             - qcom,tdm-invert-sync
125             - qcom,tdm-data-delay
126             - qcom,tdm-data-align
127
128       - if:
129           properties:
130             reg:
131               contains:
132                 # MI2S DAI ID range PRIMARY_MI2S_RX - QUATERNARY_MI2S_TX and
133                 # QUINARY_MI2S_RX - QUINARY_MI2S_TX
134                 items:
135                   oneOf:
136                     - minimum: 16
137                       maximum: 23
138                     - minimum: 127
139                       maximum: 128
140         then:
141           required:
142             - qcom,sd-lines
143
144     additionalProperties: false
145
146 required:
147   - compatible
148   - reg
149   - "#sound-dai-cells"
150   - "#address-cells"
151   - "#size-cells"
152
153 additionalProperties: false
154
155 examples:
156   - |
157     #include <dt-bindings/soc/qcom,apr.h>
158     #include <dt-bindings/sound/qcom,q6afe.h>
159     apr {
160         #address-cells = <1>;
161         #size-cells = <0>;
162         apr-service@4 {
163             reg = <APR_SVC_AFE>;
164             #address-cells = <1>;
165             #size-cells = <0>;
166             q6afedai@1 {
167               compatible = "qcom,q6afe-dais";
168               reg = <1>;
169               #address-cells = <1>;
170               #size-cells = <0>;
171               #sound-dai-cells = <1>;
172
173               dai@22 {
174                 reg = <QUATERNARY_MI2S_RX>;
175                 qcom,sd-lines = <0 1 2 3>;
176               };
177             };
178         };
179       };
180   - |
181     #include <dt-bindings/soc/qcom,gpr.h>
182     gpr {
183         compatible = "qcom,gpr";
184         #address-cells = <1>;
185         #size-cells = <0>;
186         qcom,domain = <GPR_DOMAIN_ID_ADSP>;
187         service@1 {
188             compatible = "qcom,q6apm";
189             reg = <GPR_APM_MODULE_IID>;
190             #address-cells = <1>;
191             #size-cells = <0>;
192             q6apmdai@1 {
193               compatible = "qcom,q6apm-lpass-dais";
194               reg = <1>;
195               #address-cells = <1>;
196               #size-cells = <0>;
197               #sound-dai-cells = <1>;
198
199               dai@22 {
200                 reg = <QUATERNARY_MI2S_RX>;
201                 qcom,sd-lines = <0 1 2 3>;
202               };
203             };
204         };
205       };