Merge tag 'efi_updates_for_v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.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 <mripard@kernel.org>
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     $ref: /schemas/types.yaml#/definitions/non-unique-string-array
61     minItems: 2
62     maxItems: 18
63     items:
64       enum:
65         # Audio Pins on the SoC
66         - HP
67         - HPCOM
68         - LINEIN
69         - LINEOUT
70         - MIC1
71         - MIC2
72         - MIC3
73
74         # Microphone Biases from the SoC
75         - HBIAS
76         - MBIAS
77
78         # Board Connectors
79         - Headphone
80         - Headset Mic
81         - Line In
82         - Line Out
83         - Mic
84         - Speaker
85
86   allwinner,codec-analog-controls:
87     $ref: /schemas/types.yaml#/definitions/phandle
88     description: Phandle to the codec analog controls in the PRCM
89
90   allwinner,pa-gpios:
91     description: GPIO to enable the external amplifier
92
93 required:
94   - "#sound-dai-cells"
95   - compatible
96   - reg
97   - interrupts
98   - clocks
99   - clock-names
100   - dmas
101   - dma-names
102
103 allOf:
104   - if:
105       properties:
106         compatible:
107           enum:
108             - allwinner,sun6i-a31-codec
109             - allwinner,sun8i-a23-codec
110             - allwinner,sun8i-h3-codec
111             - allwinner,sun8i-v3s-codec
112
113     then:
114       if:
115         properties:
116           compatible:
117             const: allwinner,sun6i-a31-codec
118
119       then:
120         required:
121           - resets
122           - allwinner,audio-routing
123
124       else:
125         required:
126           - resets
127           - allwinner,audio-routing
128           - allwinner,codec-analog-controls
129
130   - if:
131       properties:
132         compatible:
133           enum:
134             - allwinner,sun6i-a31-codec
135
136     then:
137       properties:
138         allwinner,audio-routing:
139           items:
140             enum:
141               - HP
142               - HPCOM
143               - LINEIN
144               - LINEOUT
145               - MIC1
146               - MIC2
147               - MIC3
148               - HBIAS
149               - MBIAS
150               - Headphone
151               - Headset Mic
152               - Line In
153               - Line Out
154               - Mic
155               - Speaker
156
157   - if:
158       properties:
159         compatible:
160           enum:
161             - allwinner,sun8i-a23-codec
162
163     then:
164       properties:
165         allwinner,audio-routing:
166           items:
167             enum:
168               - HP
169               - HPCOM
170               - LINEIN
171               - MIC1
172               - MIC2
173               - HBIAS
174               - MBIAS
175               - Headphone
176               - Headset Mic
177               - Line In
178               - Line Out
179               - Mic
180               - Speaker
181
182   - if:
183       properties:
184         compatible:
185           enum:
186             - allwinner,sun8i-h3-codec
187
188     then:
189       properties:
190         allwinner,audio-routing:
191           items:
192             enum:
193               - HP
194               - HPCOM
195               - LINEIN
196               - LINEOUT
197               - MIC1
198               - MIC2
199               - HBIAS
200               - MBIAS
201               - Headphone
202               - Headset Mic
203               - Line In
204               - Line Out
205               - Mic
206               - Speaker
207
208   - if:
209       properties:
210         compatible:
211           enum:
212             - allwinner,sun8i-v3s-codec
213
214     then:
215       properties:
216         allwinner,audio-routing:
217           items:
218             enum:
219               - HP
220               - HPCOM
221               - MIC1
222               - HBIAS
223               - Headphone
224               - Headset Mic
225               - Line In
226               - Line Out
227               - Mic
228               - Speaker
229
230 additionalProperties: false
231
232 examples:
233   - |
234     codec@1c22c00 {
235         #sound-dai-cells = <0>;
236         compatible = "allwinner,sun7i-a20-codec";
237         reg = <0x01c22c00 0x40>;
238         interrupts = <0 30 4>;
239         clocks = <&apb0_gates 0>, <&codec_clk>;
240         clock-names = "apb", "codec";
241         dmas = <&dma 0 19>, <&dma 0 19>;
242         dma-names = "rx", "tx";
243     };
244
245   - |
246     codec@1c22c00 {
247         #sound-dai-cells = <0>;
248         compatible = "allwinner,sun6i-a31-codec";
249         reg = <0x01c22c00 0x98>;
250         interrupts = <0 29 4>;
251         clocks = <&ccu 61>, <&ccu 135>;
252         clock-names = "apb", "codec";
253         resets = <&ccu 42>;
254         dmas = <&dma 15>, <&dma 15>;
255         dma-names = "rx", "tx";
256         allwinner,audio-routing =
257             "Headphone", "HP",
258             "Speaker", "LINEOUT",
259             "LINEIN", "Line In",
260             "MIC1", "MBIAS",
261             "MIC1", "Mic",
262             "MIC2", "HBIAS",
263             "MIC2", "Headset Mic";
264     };
265
266 ...