xref: /linux/Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22) !
1bc4c9d85SConor Dooley# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2bc4c9d85SConor Dooley%YAML 1.2
3bc4c9d85SConor Dooley---
4bc4c9d85SConor Dooley$id: http://devicetree.org/schemas/sound/snps,designware-i2s.yaml#
5bc4c9d85SConor Dooley$schema: http://devicetree.org/meta-schemas/core.yaml#
6bc4c9d85SConor Dooley
7bc4c9d85SConor Dooleytitle: DesignWare I2S controller
8bc4c9d85SConor Dooley
9bc4c9d85SConor Dooleymaintainers:
10bc4c9d85SConor Dooley  - Jose Abreu <joabreu@synopsys.com>
11bc4c9d85SConor Dooley
12bc4c9d85SConor Dooleyproperties:
13bc4c9d85SConor Dooley  compatible:
14bc4c9d85SConor Dooley    oneOf:
15bc4c9d85SConor Dooley      - items:
16bc4c9d85SConor Dooley          - const: canaan,k210-i2s
17bc4c9d85SConor Dooley          - const: snps,designware-i2s
18bc4c9d85SConor Dooley      - enum:
19bc4c9d85SConor Dooley          - snps,designware-i2s
20206110c7SXingyu Wu          - starfive,jh7110-i2stx0
21206110c7SXingyu Wu          - starfive,jh7110-i2stx1
22206110c7SXingyu Wu          - starfive,jh7110-i2srx
23bc4c9d85SConor Dooley
24bc4c9d85SConor Dooley  reg:
25bc4c9d85SConor Dooley    maxItems: 1
26bc4c9d85SConor Dooley
27bc4c9d85SConor Dooley  interrupts:
28bc4c9d85SConor Dooley    description: |
29bc4c9d85SConor Dooley      The interrupt line number for the I2S controller. Add this
30bc4c9d85SConor Dooley      parameter if the I2S controller that you are using does not
31bc4c9d85SConor Dooley      support DMA.
32bc4c9d85SConor Dooley    maxItems: 1
33bc4c9d85SConor Dooley
34bc4c9d85SConor Dooley  clocks:
35206110c7SXingyu Wu    items:
36206110c7SXingyu Wu      - description: Sampling rate reference clock
37206110c7SXingyu Wu      - description: APB clock
38206110c7SXingyu Wu      - description: Audio master clock
39206110c7SXingyu Wu      - description: Inner audio master clock source
40206110c7SXingyu Wu      - description: External audio master clock source
41206110c7SXingyu Wu      - description: Bit clock
42206110c7SXingyu Wu      - description: Left/right channel clock
43206110c7SXingyu Wu      - description: External bit clock
44206110c7SXingyu Wu      - description: External left/right channel clock
45206110c7SXingyu Wu    minItems: 1
46bc4c9d85SConor Dooley
47bc4c9d85SConor Dooley  clock-names:
48206110c7SXingyu Wu    items:
49206110c7SXingyu Wu      - const: i2sclk
50206110c7SXingyu Wu      - const: apb
51206110c7SXingyu Wu      - const: mclk
52206110c7SXingyu Wu      - const: mclk_inner
53206110c7SXingyu Wu      - const: mclk_ext
54206110c7SXingyu Wu      - const: bclk
55206110c7SXingyu Wu      - const: lrck
56206110c7SXingyu Wu      - const: bclk_ext
57206110c7SXingyu Wu      - const: lrck_ext
58206110c7SXingyu Wu    minItems: 1
59bc4c9d85SConor Dooley
60bc4c9d85SConor Dooley  resets:
6112b99ec3SMaxim Kochetkov    items:
6212b99ec3SMaxim Kochetkov      - description: Optional controller resets
63206110c7SXingyu Wu      - description: controller reset of Sampling rate
64206110c7SXingyu Wu    minItems: 1
65bc4c9d85SConor Dooley
66bc4c9d85SConor Dooley  dmas:
67bc4c9d85SConor Dooley    items:
68bc4c9d85SConor Dooley      - description: TX DMA Channel
69bc4c9d85SConor Dooley      - description: RX DMA Channel
70bc4c9d85SConor Dooley    minItems: 1
71bc4c9d85SConor Dooley
72bc4c9d85SConor Dooley  dma-names:
73bc4c9d85SConor Dooley    items:
74bc4c9d85SConor Dooley      - const: tx
75bc4c9d85SConor Dooley      - const: rx
76bc4c9d85SConor Dooley    minItems: 1
77bc4c9d85SConor Dooley
78206110c7SXingyu Wu  starfive,syscon:
79206110c7SXingyu Wu    $ref: /schemas/types.yaml#/definitions/phandle-array
80206110c7SXingyu Wu    items:
81206110c7SXingyu Wu      - items:
82206110c7SXingyu Wu          - description: phandle to System Register Controller sys_syscon node.
83206110c7SXingyu Wu          - description: I2S-rx enabled control offset of SYS_SYSCONSAIF__SYSCFG register.
84206110c7SXingyu Wu          - description: I2S-rx enabled control mask
85206110c7SXingyu Wu    description:
86206110c7SXingyu Wu      The phandle to System Register Controller syscon node and the I2S-rx(ADC)
87206110c7SXingyu Wu      enabled control offset and mask of SYS_SYSCONSAIF__SYSCFG register.
88206110c7SXingyu Wu
8958ae9a2aSKrzysztof KozlowskiallOf:
9058ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
9158ae9a2aSKrzysztof Kozlowski  - if:
92bc4c9d85SConor Dooley      properties:
93bc4c9d85SConor Dooley        compatible:
94bc4c9d85SConor Dooley          contains:
95bc4c9d85SConor Dooley            const: canaan,k210-i2s
96bc4c9d85SConor Dooley    then:
97bc4c9d85SConor Dooley      properties:
98bc4c9d85SConor Dooley        "#sound-dai-cells":
99bc4c9d85SConor Dooley          const: 1
100bc4c9d85SConor Dooley    else:
101bc4c9d85SConor Dooley      properties:
102bc4c9d85SConor Dooley        "#sound-dai-cells":
103bc4c9d85SConor Dooley          const: 0
104206110c7SXingyu Wu  - if:
105206110c7SXingyu Wu      properties:
106206110c7SXingyu Wu        compatible:
107206110c7SXingyu Wu          contains:
108206110c7SXingyu Wu            const: snps,designware-i2s
109206110c7SXingyu Wu    then:
110206110c7SXingyu Wu      properties:
111206110c7SXingyu Wu        clocks:
112206110c7SXingyu Wu          maxItems: 1
113206110c7SXingyu Wu        clock-names:
114206110c7SXingyu Wu          maxItems: 1
115206110c7SXingyu Wu        resets:
116206110c7SXingyu Wu          maxItems: 1
117206110c7SXingyu Wu    else:
118206110c7SXingyu Wu      properties:
119206110c7SXingyu Wu        resets:
120206110c7SXingyu Wu          minItems: 2
121206110c7SXingyu Wu          maxItems: 2
122206110c7SXingyu Wu  - if:
123206110c7SXingyu Wu      properties:
124206110c7SXingyu Wu        compatible:
125206110c7SXingyu Wu          contains:
126206110c7SXingyu Wu            const: starfive,jh7110-i2stx0
127206110c7SXingyu Wu    then:
128206110c7SXingyu Wu      properties:
129206110c7SXingyu Wu        clocks:
130206110c7SXingyu Wu          minItems: 5
131206110c7SXingyu Wu          maxItems: 5
132206110c7SXingyu Wu        clock-names:
133206110c7SXingyu Wu          minItems: 5
134206110c7SXingyu Wu          maxItems: 5
135206110c7SXingyu Wu      required:
136206110c7SXingyu Wu        - resets
137206110c7SXingyu Wu  - if:
138206110c7SXingyu Wu      properties:
139206110c7SXingyu Wu        compatible:
140206110c7SXingyu Wu          contains:
141206110c7SXingyu Wu            const: starfive,jh7110-i2stx1
142206110c7SXingyu Wu    then:
143206110c7SXingyu Wu      properties:
144206110c7SXingyu Wu        clocks:
145206110c7SXingyu Wu          minItems: 9
146206110c7SXingyu Wu          maxItems: 9
147206110c7SXingyu Wu        clock-names:
148206110c7SXingyu Wu          minItems: 9
149206110c7SXingyu Wu          maxItems: 9
150206110c7SXingyu Wu      required:
151206110c7SXingyu Wu        - resets
152206110c7SXingyu Wu  - if:
153206110c7SXingyu Wu      properties:
154206110c7SXingyu Wu        compatible:
155206110c7SXingyu Wu          contains:
156206110c7SXingyu Wu            const: starfive,jh7110-i2srx
157206110c7SXingyu Wu    then:
158206110c7SXingyu Wu      properties:
159206110c7SXingyu Wu        clocks:
160206110c7SXingyu Wu          minItems: 9
161206110c7SXingyu Wu          maxItems: 9
162206110c7SXingyu Wu        clock-names:
163206110c7SXingyu Wu          minItems: 9
164206110c7SXingyu Wu          maxItems: 9
165206110c7SXingyu Wu      required:
166206110c7SXingyu Wu        - resets
167206110c7SXingyu Wu        - starfive,syscon
168206110c7SXingyu Wu    else:
169206110c7SXingyu Wu      properties:
170206110c7SXingyu Wu        starfive,syscon: false
171bc4c9d85SConor Dooley
172bc4c9d85SConor Dooleyrequired:
173bc4c9d85SConor Dooley  - compatible
174bc4c9d85SConor Dooley  - reg
175bc4c9d85SConor Dooley  - clocks
176bc4c9d85SConor Dooley  - clock-names
177bc4c9d85SConor Dooley
178bc4c9d85SConor DooleyoneOf:
179bc4c9d85SConor Dooley  - required:
180bc4c9d85SConor Dooley      - dmas
181bc4c9d85SConor Dooley      - dma-names
182bc4c9d85SConor Dooley  - required:
183bc4c9d85SConor Dooley      - interrupts
184bc4c9d85SConor Dooley
185bc4c9d85SConor DooleyunevaluatedProperties: false
186bc4c9d85SConor Dooley
187bc4c9d85SConor Dooleyexamples:
188bc4c9d85SConor Dooley  - |
189bc4c9d85SConor Dooley    soc_i2s: i2s@7ff90000 {
190bc4c9d85SConor Dooley      compatible = "snps,designware-i2s";
191bc4c9d85SConor Dooley      reg = <0x7ff90000 0x1000>;
192bc4c9d85SConor Dooley      clocks = <&scpi_i2sclk 0>;
193bc4c9d85SConor Dooley      clock-names = "i2sclk";
194bc4c9d85SConor Dooley      #sound-dai-cells = <0>;
195bc4c9d85SConor Dooley      dmas = <&dma0 5>;
196bc4c9d85SConor Dooley      dma-names = "tx";
197bc4c9d85SConor Dooley    };
198