Merge tag 'selinux-pr-20220523' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / Documentation / devicetree / bindings / sound / allwinner,sun4i-a10-i2s.yaml
CommitLineData
0a0ca8e9
MR
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
7title: Allwinner A10 I2S Controller Device Tree Bindings
8
9maintainers:
10 - Chen-Yu Tsai <wens@csie.org>
5c7404bb 11 - Maxime Ripard <mripard@kernel.org>
0a0ca8e9
MR
12
13properties:
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
56c9d407
JS
23 - items:
24 - const: allwinner,sun8i-r40-i2s
25 - const: allwinner,sun8i-h3-i2s
ce09d1a6
TS
26 - items:
27 - const: allwinner,sun8i-v3-i2s
28 - const: allwinner,sun8i-h3-i2s
0a0ca8e9
MR
29 - const: allwinner,sun50i-a64-codec-i2s
30 - items:
31 - const: allwinner,sun50i-a64-i2s
32 - const: allwinner,sun8i-h3-i2s
e84f44ba 33 - const: allwinner,sun50i-h6-i2s
7f97b2ad
SH
34 - const: allwinner,sun50i-r329-i2s
35 - items:
36 - const: allwinner,sun20i-d1-i2s
37 - const: allwinner,sun50i-r329-i2s
0a0ca8e9
MR
38
39 reg:
40 maxItems: 1
41
42 interrupts:
43 maxItems: 1
44
45 clocks:
46 items:
47 - description: Bus Clock
48 - description: Module Clock
49
50 clock-names:
51 items:
52 - const: apb
53 - const: mod
54
0a0ca8e9
MR
55 # Even though it only applies to subschemas under the conditionals,
56 # not listing them here will trigger a warning because of the
57 # additionalsProperties set to false.
eb5b1284
MR
58 dmas: true
59 dma-names: true
0a0ca8e9
MR
60 resets:
61 maxItems: 1
62
63allOf:
64 - if:
65 properties:
66 compatible:
67 contains:
68 enum:
69 - allwinner,sun6i-a31-i2s
70 - allwinner,sun8i-a83t-i2s
71 - allwinner,sun8i-h3-i2s
72 - allwinner,sun50i-a64-codec-i2s
e84f44ba 73 - allwinner,sun50i-h6-i2s
7f97b2ad 74 - allwinner,sun50i-r329-i2s
0a0ca8e9
MR
75
76 then:
77 required:
78 - resets
79
eb5b1284
MR
80 - if:
81 properties:
82 compatible:
83 contains:
0bc1bf24
CP
84 enum:
85 - allwinner,sun8i-a83t-i2s
86 - allwinner,sun8i-h3-i2s
eb5b1284
MR
87
88 then:
89 properties:
90 dmas:
91 minItems: 1
eb5b1284
MR
92 items:
93 - description: RX DMA Channel
94 - description: TX DMA Channel
95 description:
96 Some controllers cannot receive but can only transmit
97 data. In such a case, the RX DMA channel is to be omitted.
98
99 dma-names:
100 oneOf:
101 - items:
102 - const: rx
103 - const: tx
104 - const: tx
105 description:
106 Some controllers cannot receive but can only transmit
107 data. In such a case, the RX name is to be omitted.
108
109 else:
110 properties:
111 dmas:
112 items:
113 - description: RX DMA Channel
114 - description: TX DMA Channel
115
116 dma-names:
117 items:
118 - const: rx
119 - const: tx
120
0a0ca8e9
MR
121required:
122 - "#sound-dai-cells"
123 - compatible
124 - reg
125 - interrupts
126 - clocks
127 - clock-names
128 - dmas
129 - dma-names
130
131additionalProperties: false
132
133examples:
134 - |
135 i2s0: i2s@1c22400 {
136 #sound-dai-cells = <0>;
137 compatible = "allwinner,sun4i-a10-i2s";
138 reg = <0x01c22400 0x400>;
139 interrupts = <0 16 4>;
140 clocks = <&apb0_gates 3>, <&i2s0_clk>;
141 clock-names = "apb", "mod";
142 dmas = <&dma 0 3>, <&dma 0 3>;
143 dma-names = "rx", "tx";
144 };
145
146...