Merge tag 'drm-fixes-5.5-2019-12-12' of git://people.freedesktop.org/~agd5f/linux...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / sound / allwinner,sun4i-a10-codec.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-codec.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner A10 Codec Device Tree Bindings
8
9 maintainers:
10   - Chen-Yu Tsai <wens@csie.org>
11   - Maxime Ripard <maxime.ripard@bootlin.com>
12
13 properties:
14   "#sound-dai-cells":
15     const: 0
16
17   compatible:
18     enum:
19       - allwinner,sun4i-a10-codec
20       - allwinner,sun6i-a31-codec
21       - allwinner,sun7i-a20-codec
22       - allwinner,sun8i-a23-codec
23       - allwinner,sun8i-h3-codec
24       - allwinner,sun8i-v3s-codec
25
26   reg:
27     maxItems: 1
28
29   interrupts:
30     maxItems: 1
31
32   clocks:
33     items:
34       - description: Bus Clock
35       - description: Module Clock
36
37   clock-names:
38     items:
39       - const: apb
40       - const: codec
41
42   dmas:
43     items:
44       - description: RX DMA Channel
45       - description: TX DMA Channel
46
47   dma-names:
48     items:
49       - const: rx
50       - const: tx
51
52   resets:
53     maxItems: 1
54
55   allwinner,audio-routing:
56     description: |-
57       A list of the connections between audio components.  Each entry
58       is a pair of strings, the first being the connection's sink, the
59       second being the connection's source.
60     allOf:
61       - $ref: /schemas/types.yaml#definitions/non-unique-string-array
62       - minItems: 2
63         maxItems: 18
64         items:
65           enum:
66             # Audio Pins on the SoC
67             - HP
68             - HPCOM
69             - LINEIN
70             - LINEOUT
71             - MIC1
72             - MIC2
73             - MIC3
74
75             # Microphone Biases from the SoC
76             - HBIAS
77             - MBIAS
78
79             # Board Connectors
80             - Headphone
81             - Headset Mic
82             - Line In
83             - Line Out
84             - Mic
85             - Speaker
86
87   allwinner,codec-analog-controls:
88     $ref: /schemas/types.yaml#/definitions/phandle
89     description: Phandle to the codec analog controls in the PRCM
90
91   allwinner,pa-gpios:
92     description: GPIO to enable the external amplifier
93
94 required:
95   - "#sound-dai-cells"
96   - compatible
97   - reg
98   - interrupts
99   - clocks
100   - clock-names
101   - dmas
102   - dma-names
103
104 allOf:
105   - if:
106       properties:
107         compatible:
108           enum:
109             - allwinner,sun6i-a31-codec
110             - allwinner,sun8i-a23-codec
111             - allwinner,sun8i-h3-codec
112             - allwinner,sun8i-v3s-codec
113
114     then:
115       if:
116         properties:
117           compatible:
118             const: allwinner,sun6i-a31-codec
119
120       then:
121         required:
122           - resets
123           - allwinner,audio-routing
124
125       else:
126         required:
127           - resets
128           - allwinner,audio-routing
129           - allwinner,codec-analog-controls
130
131   - if:
132       properties:
133         compatible:
134           enum:
135             - allwinner,sun6i-a31-codec
136
137     then:
138       properties:
139         allwinner,audio-routing:
140           items:
141             enum:
142               - HP
143               - HPCOM
144               - LINEIN
145               - LINEOUT
146               - MIC1
147               - MIC2
148               - MIC3
149               - HBIAS
150               - MBIAS
151               - Headphone
152               - Headset Mic
153               - Line In
154               - Line Out
155               - Mic
156               - Speaker
157
158   - if:
159       properties:
160         compatible:
161           enum:
162             - allwinner,sun8i-a23-codec
163
164     then:
165       properties:
166         allwinner,audio-routing:
167           items:
168             enum:
169               - HP
170               - HPCOM
171               - LINEIN
172               - MIC1
173               - MIC2
174               - HBIAS
175               - MBIAS
176               - Headphone
177               - Headset Mic
178               - Line In
179               - Line Out
180               - Mic
181               - Speaker
182
183   - if:
184       properties:
185         compatible:
186           enum:
187             - allwinner,sun8i-h3-codec
188
189     then:
190       properties:
191         allwinner,audio-routing:
192           items:
193             enum:
194               - HP
195               - HPCOM
196               - LINEIN
197               - LINEOUT
198               - MIC1
199               - MIC2
200               - HBIAS
201               - MBIAS
202               - Headphone
203               - Headset Mic
204               - Line In
205               - Line Out
206               - Mic
207               - Speaker
208
209   - if:
210       properties:
211         compatible:
212           enum:
213             - allwinner,sun8i-v3s-codec
214
215     then:
216       properties:
217         allwinner,audio-routing:
218           items:
219             enum:
220               - HP
221               - HPCOM
222               - MIC1
223               - HBIAS
224               - Headphone
225               - Headset Mic
226               - Line In
227               - Line Out
228               - Mic
229               - Speaker
230
231 additionalProperties: false
232
233 examples:
234   - |
235     codec@1c22c00 {
236         #sound-dai-cells = <0>;
237         compatible = "allwinner,sun7i-a20-codec";
238         reg = <0x01c22c00 0x40>;
239         interrupts = <0 30 4>;
240         clocks = <&apb0_gates 0>, <&codec_clk>;
241         clock-names = "apb", "codec";
242         dmas = <&dma 0 19>, <&dma 0 19>;
243         dma-names = "rx", "tx";
244     };
245
246   - |
247     codec@1c22c00 {
248         #sound-dai-cells = <0>;
249         compatible = "allwinner,sun6i-a31-codec";
250         reg = <0x01c22c00 0x98>;
251         interrupts = <0 29 4>;
252         clocks = <&ccu 61>, <&ccu 135>;
253         clock-names = "apb", "codec";
254         resets = <&ccu 42>;
255         dmas = <&dma 15>, <&dma 15>;
256         dma-names = "rx", "tx";
257         allwinner,audio-routing =
258             "Headphone", "HP",
259             "Speaker", "LINEOUT",
260             "LINEIN", "Line In",
261             "MIC1", "MBIAS",
262             "MIC1", "Mic",
263             "MIC2", "HBIAS",
264             "MIC2", "Headset Mic";
265     };
266
267 ...