Merge tag 'linux-watchdog-5.10-rc1' of git://www.linux-watchdog.org/linux-watchdog
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / samsung-i2s.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/samsung-i2s.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Samsung SoC I2S controller
8
9 maintainers:
10   - Krzysztof Kozlowski <krzk@kernel.org>
11   - Sylwester Nawrocki <s.nawrocki@samsung.com>
12
13 properties:
14   compatible:
15     description: |
16       samsung,s3c6410-i2s: for 8/16/24bit stereo I2S.
17
18       samsung,s5pv210-i2s: for 8/16/24bit multichannel (5.1) I2S with
19       secondary FIFO, s/w reset control and internal mux for root clock
20       source.
21
22       samsung,exynos5420-i2s: for 8/16/24bit multichannel (5.1) I2S for
23       playback, stereo channel capture, secondary FIFO using internal
24       or external DMA, s/w reset control, internal mux for root clock
25       source and 7.1 channel TDM support for playback; TDM (Time division
26       multiplexing) is to allow transfer of multiple channel audio data on
27       single data line.
28
29       samsung,exynos7-i2s: with all the available features of Exynos5 I2S.
30       Exynos7 I2S has 7.1 channel TDM support for capture, secondary FIFO
31       with only external DMA and more number of root clock sampling
32       frequencies.
33
34       samsung,exynos7-i2s1: I2S1 on previous samsung platforms supports
35       stereo channels. Exynos7 I2S1 upgraded to 5.1 multichannel with
36       slightly modified bit offsets.
37     enum:
38       - samsung,s3c6410-i2s
39       - samsung,s5pv210-i2s
40       - samsung,exynos5420-i2s
41       - samsung,exynos7-i2s
42       - samsung,exynos7-i2s1
43
44   '#address-cells':
45     const: 1
46
47   '#size-cells':
48     const: 0
49
50   reg:
51     maxItems: 1
52
53   dmas:
54     minItems: 2
55     maxItems: 3
56
57   dma-names:
58     oneOf:
59       - items:
60           - const: tx
61           - const: rx
62       - items:
63           - const: tx
64           - const: rx
65           - const: tx-sec
66
67   assigned-clock-parents: true
68   assigned-clocks: true
69
70   clocks:
71     minItems: 1
72     maxItems: 3
73
74   clock-names:
75     oneOf:
76       - items:
77           - const: iis
78       - items: # for I2S0
79           - const: iis
80           - const: i2s_opclk0
81           - const: i2s_opclk1
82       - items: # for I2S1 and I2S2
83           - const: iis
84           - const: i2s_opclk0
85     description: |
86       "iis" is the I2S bus clock and i2s_opclk0, i2s_opclk1 are sources
87       of the root clock. I2S0 has internal mux to select the source
88       of root clock and I2S1 and I2S2 doesn't have any such mux.
89
90   "#clock-cells":
91     const: 1
92
93   clock-output-names:
94     deprecated: true
95     oneOf:
96       - items: # for I2S0
97           - const: i2s_cdclk0
98       - items: # for I2S1
99           - const: i2s_cdclk1
100       - items: # for I2S2
101           - const: i2s_cdclk2
102     description: Names of the CDCLK I2S output clocks.
103
104   interrupts:
105     maxItems: 1
106
107   samsung,idma-addr:
108     $ref: /schemas/types.yaml#/definitions/uint32
109     description: |
110       Internal DMA register base address of the audio
111       subsystem (used in secondary sound source).
112
113   pinctrl-0:
114     description: Should specify pin control groups used for this controller.
115
116   pinctrl-names:
117     const: default
118
119   power-domains:
120     maxItems: 1
121
122   "#sound-dai-cells":
123     const: 1
124
125 required:
126   - compatible
127   - reg
128   - dmas
129   - dma-names
130   - clocks
131   - clock-names
132
133 additionalProperties: false
134
135 examples:
136   - |
137     #include <dt-bindings/clock/exynos-audss-clk.h>
138
139     i2s0: i2s@3830000 {
140         compatible = "samsung,s5pv210-i2s";
141         reg = <0x03830000 0x100>;
142         dmas = <&pdma0 10>,
143                 <&pdma0 9>,
144                 <&pdma0 8>;
145         dma-names = "tx", "rx", "tx-sec";
146         clocks = <&clock_audss EXYNOS_I2S_BUS>,
147                 <&clock_audss EXYNOS_I2S_BUS>,
148                 <&clock_audss EXYNOS_SCLK_I2S>;
149         clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
150         #clock-cells = <1>;
151         samsung,idma-addr = <0x03000000>;
152         pinctrl-names = "default";
153         pinctrl-0 = <&i2s0_bus>;
154         #sound-dai-cells = <1>;
155     };