Commit | Line | Data |
---|---|---|
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 | ||
7 | title: Allwinner A10 I2S Controller Device Tree Bindings | |
8 | ||
9 | maintainers: | |
10 | - Chen-Yu Tsai <wens@csie.org> | |
5c7404bb | 11 | - Maxime Ripard <mripard@kernel.org> |
0a0ca8e9 MR |
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 | |
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 | ||
63 | allOf: | |
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 |
121 | required: |
122 | - "#sound-dai-cells" | |
123 | - compatible | |
124 | - reg | |
125 | - interrupts | |
126 | - clocks | |
127 | - clock-names | |
128 | - dmas | |
129 | - dma-names | |
130 | ||
131 | additionalProperties: false | |
132 | ||
133 | examples: | |
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 | ... |