Merge tag 'riscv/for-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / sound / allwinner,sun4i-a10-i2s.yaml
1 # SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Allwinner A10 I2S Controller 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     oneOf:
19       - const: allwinner,sun4i-a10-i2s
20       - const: allwinner,sun6i-a31-i2s
21       - const: allwinner,sun8i-a83t-i2s
22       - const: allwinner,sun8i-h3-i2s
23       - const: allwinner,sun50i-a64-codec-i2s
24       - items:
25           - const: allwinner,sun50i-a64-i2s
26           - const: allwinner,sun8i-h3-i2s
27
28   reg:
29     maxItems: 1
30
31   interrupts:
32     maxItems: 1
33
34   clocks:
35     items:
36       - description: Bus Clock
37       - description: Module Clock
38
39   clock-names:
40     items:
41       - const: apb
42       - const: mod
43
44   # Even though it only applies to subschemas under the conditionals,
45   # not listing them here will trigger a warning because of the
46   # additionalsProperties set to false.
47   dmas: true
48   dma-names: true
49   resets:
50     maxItems: 1
51
52 allOf:
53   - if:
54       properties:
55         compatible:
56           contains:
57             enum:
58               - allwinner,sun6i-a31-i2s
59               - allwinner,sun8i-a83t-i2s
60               - allwinner,sun8i-h3-i2s
61               - allwinner,sun50i-a64-codec-i2s
62
63     then:
64       required:
65         - resets
66
67   - if:
68       properties:
69         compatible:
70           contains:
71             const: allwinner,sun8i-a83t-i2s
72
73     then:
74       properties:
75         dmas:
76           minItems: 1
77           maxItems: 2
78           items:
79             - description: RX DMA Channel
80             - description: TX DMA Channel
81           description:
82             Some controllers cannot receive but can only transmit
83             data. In such a case, the RX DMA channel is to be omitted.
84
85         dma-names:
86           oneOf:
87             - items:
88                 - const: rx
89                 - const: tx
90             - const: tx
91           description:
92             Some controllers cannot receive but can only transmit
93             data. In such a case, the RX name is to be omitted.
94
95     else:
96       properties:
97         dmas:
98           items:
99             - description: RX DMA Channel
100             - description: TX DMA Channel
101
102         dma-names:
103           items:
104             - const: rx
105             - const: tx
106
107 required:
108   - "#sound-dai-cells"
109   - compatible
110   - reg
111   - interrupts
112   - clocks
113   - clock-names
114   - dmas
115   - dma-names
116
117 additionalProperties: false
118
119 examples:
120   - |
121     i2s0: i2s@1c22400 {
122         #sound-dai-cells = <0>;
123         compatible = "allwinner,sun4i-a10-i2s";
124         reg = <0x01c22400 0x400>;
125         interrupts = <0 16 4>;
126         clocks = <&apb0_gates 3>, <&i2s0_clk>;
127         clock-names = "apb", "mod";
128         dmas = <&dma 0 3>, <&dma 0 3>;
129         dma-names = "rx", "tx";
130     };
131
132 ...