Commit | Line | Data |
---|---|---|
90e8e50f KM |
1 | Renesas R-Car sound |
2 | ||
3 | Required properties: | |
56ba98ac GU |
4 | - compatible : "renesas,rcar_sound-<soctype>", fallbacks |
5 | "renesas,rcar_sound-gen1" if generation1, and | |
90e8e50f | 6 | "renesas,rcar_sound-gen2" if generation2 |
56ba98ac GU |
7 | Examples with soctypes are: |
8 | - "renesas,rcar_sound-r8a7790" (R-Car H2) | |
9 | - "renesas,rcar_sound-r8a7791" (R-Car M2-W) | |
90e8e50f KM |
10 | - reg : Should contain the register physical address. |
11 | required register is | |
12 | SRU/ADG/SSI if generation1 | |
13 | SRU/ADG/SSIU/SSI if generation2 | |
8bab0dd5 KM |
14 | - rcar_sound,ssi : Should contain SSI feature. |
15 | The number of SSI subnode should be same as HW. | |
16 | see below for detail. | |
17 | - rcar_sound,src : Should contain SRC feature. | |
18 | The number of SRC subnode should be same as HW. | |
19 | see below for detail. | |
34cb6123 KM |
20 | - rcar_sound,dvc : Should contain DVC feature. |
21 | The number of DVC subnode should be same as HW. | |
22 | see below for detail. | |
8bab0dd5 KM |
23 | - rcar_sound,dai : DAI contents. |
24 | The number of DAI subnode should be same as HW. | |
25 | see below for detail. | |
90e8e50f KM |
26 | |
27 | SSI subnode properties: | |
28 | - interrupts : Should contain SSI interrupt for PIO transfer | |
29 | - shared-pin : if shared clock pin | |
199e7688 | 30 | - pio-transfer : use PIO transfer mode |
d9288d0b | 31 | - no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case |
e80a2fb1 KM |
32 | - dma : Should contain Audio DMAC entry |
33 | - dma-names : SSI case "rx" (=playback), "tx" (=capture) | |
34 | SSIU case "rxu" (=playback), "txu" (=capture) | |
90e8e50f | 35 | |
8bab0dd5 | 36 | SRC subnode properties: |
e80a2fb1 KM |
37 | - dma : Should contain Audio DMAC entry |
38 | - dma-names : "rx" (=playback), "tx" (=capture) | |
39 | ||
40 | DVC subnode properties: | |
41 | - dma : Should contain Audio DMAC entry | |
42 | - dma-names : "tx" (=playback/capture) | |
8bab0dd5 | 43 | |
90e8e50f KM |
44 | DAI subnode properties: |
45 | - playback : list of playback modules | |
46 | - capture : list of capture modules | |
47 | ||
48 | Example: | |
49 | ||
56ba98ac | 50 | rcar_sound: rcar_sound@ec500000 { |
90e8e50f | 51 | #sound-dai-cells = <1>; |
56ba98ac | 52 | compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; |
90e8e50f KM |
53 | reg = <0 0xec500000 0 0x1000>, /* SCU */ |
54 | <0 0xec5a0000 0 0x100>, /* ADG */ | |
55 | <0 0xec540000 0 0x1000>, /* SSIU */ | |
d3b1c0ba KM |
56 | <0 0xec541000 0 0x1280>, /* SSI */ |
57 | <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ | |
58 | reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; | |
90e8e50f | 59 | |
bb02714f KM |
60 | clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, |
61 | <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, | |
62 | <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, | |
63 | <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, | |
64 | <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, | |
65 | <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, | |
66 | <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, | |
67 | <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, | |
68 | <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, | |
69 | <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, | |
70 | <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, | |
71 | <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, | |
72 | <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; | |
73 | clock-names = "ssi-all", | |
74 | "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", | |
75 | "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", | |
76 | "src.9", "src.8", "src.7", "src.6", "src.5", | |
77 | "src.4", "src.3", "src.2", "src.1", "src.0", | |
78 | "dvc.0", "dvc.1", | |
79 | "clk_a", "clk_b", "clk_c", "clk_i"; | |
80 | ||
34cb6123 | 81 | rcar_sound,dvc { |
e80a2fb1 KM |
82 | dvc0: dvc@0 { |
83 | dmas = <&audma0 0xbc>; | |
84 | dma-names = "tx"; | |
85 | }; | |
86 | dvc1: dvc@1 { | |
87 | dmas = <&audma0 0xbe>; | |
88 | dma-names = "tx"; | |
89 | }; | |
34cb6123 KM |
90 | }; |
91 | ||
90e8e50f | 92 | rcar_sound,src { |
5cf4f686 KM |
93 | src0: src@0 { |
94 | interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
95 | dmas = <&audma0 0x85>, <&audma1 0x9a>; |
96 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
97 | }; |
98 | src1: src@1 { | |
99 | interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
100 | dmas = <&audma0 0x87>, <&audma1 0x9c>; |
101 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
102 | }; |
103 | src2: src@2 { | |
104 | interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
105 | dmas = <&audma0 0x89>, <&audma1 0x9e>; |
106 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
107 | }; |
108 | src3: src@3 { | |
109 | interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
110 | dmas = <&audma0 0x8b>, <&audma1 0xa0>; |
111 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
112 | }; |
113 | src4: src@4 { | |
114 | interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
115 | dmas = <&audma0 0x8d>, <&audma1 0xb0>; |
116 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
117 | }; |
118 | src5: src@5 { | |
119 | interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
120 | dmas = <&audma0 0x8f>, <&audma1 0xb2>; |
121 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
122 | }; |
123 | src6: src@6 { | |
124 | interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
125 | dmas = <&audma0 0x91>, <&audma1 0xb4>; |
126 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
127 | }; |
128 | src7: src@7 { | |
129 | interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
130 | dmas = <&audma0 0x93>, <&audma1 0xb6>; |
131 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
132 | }; |
133 | src8: src@8 { | |
134 | interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
135 | dmas = <&audma0 0x95>, <&audma1 0xb8>; |
136 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
137 | }; |
138 | src9: src@9 { | |
139 | interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
140 | dmas = <&audma0 0x97>, <&audma1 0xba>; |
141 | dma-names = "rx", "tx"; | |
5cf4f686 | 142 | }; |
90e8e50f KM |
143 | }; |
144 | ||
145 | rcar_sound,ssi { | |
146 | ssi0: ssi@0 { | |
147 | interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
148 | dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; |
149 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
150 | }; |
151 | ssi1: ssi@1 { | |
152 | interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
153 | dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; |
154 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
155 | }; |
156 | ssi2: ssi@2 { | |
157 | interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
158 | dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; |
159 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
160 | }; |
161 | ssi3: ssi@3 { | |
162 | interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
163 | dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; |
164 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
165 | }; |
166 | ssi4: ssi@4 { | |
167 | interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
168 | dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; |
169 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
170 | }; |
171 | ssi5: ssi@5 { | |
172 | interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
173 | dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; |
174 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
175 | }; |
176 | ssi6: ssi@6 { | |
177 | interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
178 | dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; |
179 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
180 | }; |
181 | ssi7: ssi@7 { | |
182 | interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
183 | dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; |
184 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
185 | }; |
186 | ssi8: ssi@8 { | |
187 | interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
188 | dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; |
189 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
190 | }; |
191 | ssi9: ssi@9 { | |
192 | interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
193 | dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; |
194 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
195 | }; |
196 | }; | |
197 | ||
198 | rcar_sound,dai { | |
199 | dai0 { | |
200 | playback = <&ssi5 &src5>; | |
201 | capture = <&ssi6>; | |
202 | }; | |
203 | dai1 { | |
204 | playback = <&ssi3>; | |
205 | }; | |
206 | dai2 { | |
207 | capture = <&ssi4>; | |
208 | }; | |
209 | dai3 { | |
210 | playback = <&ssi7>; | |
211 | }; | |
212 | dai4 { | |
213 | capture = <&ssi8>; | |
214 | }; | |
215 | }; | |
216 | }; |