blob: a48d040b0a4fbd6c92f2426bb7e9466db840362e [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/snps,designware-i2s.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: DesignWare I2S controller
8
9maintainers:
10 - Jose Abreu <joabreu@synopsys.com>
11
12properties:
13 compatible:
14 oneOf:
15 - items:
16 - const: canaan,k210-i2s
17 - const: snps,designware-i2s
18 - enum:
19 - snps,designware-i2s
20 - starfive,jh7110-i2stx0
21 - starfive,jh7110-i2stx1
22 - starfive,jh7110-i2srx
23
24 reg:
25 maxItems: 1
26
27 interrupts:
28 description: |
29 The interrupt line number for the I2S controller. Add this
30 parameter if the I2S controller that you are using does not
31 support DMA.
32 maxItems: 1
33
34 clocks:
35 items:
36 - description: Sampling rate reference clock
37 - description: APB clock
38 - description: Audio master clock
39 - description: Inner audio master clock source
40 - description: External audio master clock source
41 - description: Bit clock
42 - description: Left/right channel clock
43 - description: External bit clock
44 - description: External left/right channel clock
45 minItems: 1
46
47 clock-names:
48 items:
49 - const: i2sclk
50 - const: apb
51 - const: mclk
52 - const: mclk_inner
53 - const: mclk_ext
54 - const: bclk
55 - const: lrck
56 - const: bclk_ext
57 - const: lrck_ext
58 minItems: 1
59
60 resets:
61 items:
62 - description: Optional controller resets
63 - description: controller reset of Sampling rate
64 minItems: 1
65
66 dmas:
67 items:
68 - description: TX DMA Channel
69 - description: RX DMA Channel
70 minItems: 1
71
72 dma-names:
73 items:
74 - const: tx
75 - const: rx
76 minItems: 1
77
78 starfive,syscon:
79 $ref: /schemas/types.yaml#/definitions/phandle-array
80 items:
81 - items:
82 - description: phandle to System Register Controller sys_syscon node.
83 - description: I2S-rx enabled control offset of SYS_SYSCONSAIF__SYSCFG register.
84 - description: I2S-rx enabled control mask
85 description:
86 The phandle to System Register Controller syscon node and the I2S-rx(ADC)
87 enabled control offset and mask of SYS_SYSCONSAIF__SYSCFG register.
88
89allOf:
90 - $ref: dai-common.yaml#
91 - if:
92 properties:
93 compatible:
94 contains:
95 const: canaan,k210-i2s
96 then:
97 properties:
98 "#sound-dai-cells":
99 const: 1
100 else:
101 properties:
102 "#sound-dai-cells":
103 const: 0
104 - if:
105 properties:
106 compatible:
107 contains:
108 const: snps,designware-i2s
109 then:
110 properties:
111 clocks:
112 maxItems: 1
113 clock-names:
114 maxItems: 1
115 resets:
116 maxItems: 1
117 else:
118 properties:
119 resets:
120 minItems: 2
121 maxItems: 2
122 - if:
123 properties:
124 compatible:
125 contains:
126 const: starfive,jh7110-i2stx0
127 then:
128 properties:
129 clocks:
130 minItems: 5
131 maxItems: 5
132 clock-names:
133 minItems: 5
134 maxItems: 5
135 required:
136 - resets
137 - if:
138 properties:
139 compatible:
140 contains:
141 const: starfive,jh7110-i2stx1
142 then:
143 properties:
144 clocks:
145 minItems: 9
146 maxItems: 9
147 clock-names:
148 minItems: 9
149 maxItems: 9
150 required:
151 - resets
152 - if:
153 properties:
154 compatible:
155 contains:
156 const: starfive,jh7110-i2srx
157 then:
158 properties:
159 clocks:
160 minItems: 9
161 maxItems: 9
162 clock-names:
163 minItems: 9
164 maxItems: 9
165 required:
166 - resets
167 - starfive,syscon
168 else:
169 properties:
170 starfive,syscon: false
171
172required:
173 - compatible
174 - reg
175 - clocks
176 - clock-names
177
178oneOf:
179 - required:
180 - dmas
181 - dma-names
182 - required:
183 - interrupts
184
185unevaluatedProperties: false
186
187examples:
188 - |
189 soc_i2s: i2s@7ff90000 {
190 compatible = "snps,designware-i2s";
191 reg = <0x7ff90000 0x1000>;
192 clocks = <&scpi_i2sclk 0>;
193 clock-names = "i2sclk";
194 #sound-dai-cells = <0>;
195 dmas = <&dma0 5>;
196 dma-names = "tx";
197 };