Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / rockchip-i2s.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/rockchip-i2s.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Rockchip I2S controller
8
9 description:
10   The I2S bus (Inter-IC sound bus) is a serial link for digital
11   audio data transfer between devices in the system.
12
13 maintainers:
14   - Heiko Stuebner <heiko@sntech.de>
15
16 allOf:
17   - $ref: dai-common.yaml#
18
19 properties:
20   compatible:
21     oneOf:
22       - const: rockchip,rk3066-i2s
23       - items:
24           - enum:
25               - rockchip,px30-i2s
26               - rockchip,rk1808-i2s
27               - rockchip,rk3036-i2s
28               - rockchip,rk3128-i2s
29               - rockchip,rk3188-i2s
30               - rockchip,rk3228-i2s
31               - rockchip,rk3288-i2s
32               - rockchip,rk3308-i2s
33               - rockchip,rk3328-i2s
34               - rockchip,rk3366-i2s
35               - rockchip,rk3368-i2s
36               - rockchip,rk3399-i2s
37               - rockchip,rk3588-i2s
38               - rockchip,rv1126-i2s
39           - const: rockchip,rk3066-i2s
40
41   reg:
42     maxItems: 1
43
44   interrupts:
45     maxItems: 1
46
47   clocks:
48     items:
49       - description: clock for I2S controller
50       - description: clock for I2S BUS
51
52   clock-names:
53     items:
54       - const: i2s_clk
55       - const: i2s_hclk
56
57   dmas:
58     minItems: 1
59     maxItems: 2
60
61   dma-names:
62     oneOf:
63       - const: rx
64       - items:
65           - const: tx
66           - const: rx
67
68   pinctrl-names:
69     oneOf:
70       - const: default
71       - items:
72           - const: bclk_on
73           - const: bclk_off
74
75   power-domains:
76     maxItems: 1
77
78   reset-names:
79     items:
80       - const: reset-m
81       - const: reset-h
82
83   resets:
84     maxItems: 2
85
86   port:
87     $ref: audio-graph-port.yaml#
88     unevaluatedProperties: false
89
90   rockchip,capture-channels:
91     $ref: /schemas/types.yaml#/definitions/uint32
92     default: 2
93     description:
94       Max capture channels, if not set, 2 channels default.
95
96   rockchip,playback-channels:
97     $ref: /schemas/types.yaml#/definitions/uint32
98     default: 8
99     description:
100       Max playback channels, if not set, 8 channels default.
101
102   rockchip,grf:
103     $ref: /schemas/types.yaml#/definitions/phandle
104     description:
105       The phandle of the syscon node for the GRF register.
106       Required property for controllers which support multi channel
107       playback/capture.
108
109   "#sound-dai-cells":
110     const: 0
111
112 required:
113   - compatible
114   - reg
115   - interrupts
116   - clocks
117   - clock-names
118   - dmas
119   - dma-names
120   - "#sound-dai-cells"
121
122 unevaluatedProperties: false
123
124 examples:
125   - |
126     #include <dt-bindings/clock/rk3288-cru.h>
127     #include <dt-bindings/interrupt-controller/arm-gic.h>
128     #include <dt-bindings/interrupt-controller/irq.h>
129     i2s@ff890000 {
130       compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
131       reg = <0xff890000 0x10000>;
132       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
133       clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0>;
134       clock-names = "i2s_clk", "i2s_hclk";
135       dmas = <&pdma1 0>, <&pdma1 1>;
136       dma-names = "tx", "rx";
137       rockchip,capture-channels = <2>;
138       rockchip,playback-channels = <8>;
139       #sound-dai-cells = <0>;
140     };