GNU Linux-libre 4.19.264-gnu1
[releases.git] / Documentation / devicetree / bindings / sound / renesas,rsnd.txt
1 Renesas R-Car sound
2
3 =============================================
4 * Modules
5 =============================================
6
7 Renesas R-Car and RZ/G sound is constructed from below modules
8 (for Gen2 or later)
9
10  SCU            : Sampling Rate Converter Unit
11   - SRC         : Sampling Rate Converter
12   - CMD
13    - CTU        : Channel Transfer Unit
14    - MIX        : Mixer
15    - DVC        : Digital Volume and Mute Function
16  SSIU           : Serial Sound Interface Unit
17  SSI            : Serial Sound Interface
18
19 See detail of each module's channels, connection, limitation on datasheet
20
21 =============================================
22 * Multi channel
23 =============================================
24
25 Multi channel is supported by Multi-SSI, or TDM-SSI.
26
27  Multi-SSI      : 6ch case, you can use stereo x 3 SSI
28  TDM-SSI        : 6ch case, you can use TDM
29
30 =============================================
31 * Enable/Disable each modules
32 =============================================
33
34 See datasheet to check SRC/CTU/MIX/DVC connect-limitation.
35 DT controls enabling/disabling module.
36 ${LINUX}/arch/arm/boot/dts/r8a7790-lager.dts can be good example.
37 This is example of
38
39 Playback: [MEM] -> [SRC2] -> [DVC0] -> [SSIU0/SSI0] -> [codec]
40 Capture:  [MEM] <- [DVC1] <- [SRC3] <- [SSIU1/SSI1] <- [codec]
41
42         &rcar_sound {
43                 ...
44                 rcar_sound,dai {
45                         dai0 {
46                                 playback = <&ssi0 &src2 &dvc0>;
47                                 capture  = <&ssi1 &src3 &dvc1>;
48                         };
49                 };
50         };
51
52 You can use below.
53 ${LINUX}/arch/arm/boot/dts/r8a7790.dts can be good example.
54
55         &src0   &ctu00  &mix0   &dvc0   &ssi0
56         &src1   &ctu01  &mix1   &dvc1   &ssi1
57         &src2   &ctu02                  &ssi2
58         &src3   &ctu03                  &ssi3
59         &src4                           &ssi4
60         &src5   &ctu10                  &ssi5
61         &src6   &ctu11                  &ssi6
62         &src7   &ctu12                  &ssi7
63         &src8   &ctu13                  &ssi8
64         &src9                           &ssi9
65
66 =============================================
67 * SRC (Sampling Rate Converter)
68 =============================================
69
70  [xx]Hz        [yy]Hz
71  ------> [SRC] ------>
72
73 SRC can convert [xx]Hz to [yy]Hz. Then, it has below 2 modes
74
75  Asynchronous mode:     input data / output data are based on different clocks.
76                         you can use this mode on Playback / Capture
77  Synchronous mode:      input data / output data are based on same clocks.
78                         This mode will be used if system doesn't have its input clock,
79                         for example digital TV case.
80                         you can use this mode on Playback
81
82 ------------------
83 **     Asynchronous mode
84 ------------------
85
86 You need to use "simple-scu-audio-card" sound card for it.
87 example)
88
89         sound {
90                 compatible = "simple-scu-audio-card";
91                 ...
92                 /*
93                  * SRC Asynchronous mode setting
94                  * Playback:
95                  * All input data will be converted to 48kHz
96                  * Capture:
97                  * Inputed 48kHz data will be converted to
98                  * system specified Hz
99                  */
100                 simple-audio-card,convert-rate = <48000>;
101                 ...
102                 simple-audio-card,cpu {
103                         sound-dai = <&rcar_sound>;
104                 };
105                 simple-audio-card,codec {
106                         ...
107                 };
108         };
109
110 ------------------
111 **     Synchronous mode
112 ------------------
113
114         > amixer set "SRC Out Rate" on
115         > aplay xxxx.wav
116         > amixer set "SRC Out Rate" 48000
117         > amixer set "SRC Out Rate" 44100
118
119 =============================================
120 * CTU (Channel Transfer Unit)
121 =============================================
122
123  [xx]ch        [yy]ch
124  ------> [CTU] -------->
125
126 CTU can convert [xx]ch to [yy]ch, or exchange outputed channel.
127 CTU conversion needs matrix settings.
128 For more detail information, see below
129
130         Renesas R-Car datasheet
131          - Sampling Rate Converter Unit (SCU)
132           - SCU Operation
133            - CMD Block
134             - Functional Blocks in CMD
135
136         Renesas R-Car datasheet
137          - Sampling Rate Converter Unit (SCU)
138           - Register Description
139            - CTUn Scale Value exx Register (CTUn_SVxxR)
140
141         ${LINUX}/sound/soc/sh/rcar/ctu.c
142          - comment of header
143
144 You need to use "simple-scu-audio-card" sound card for it.
145 example)
146
147         sound {
148                 compatible = "simple-scu-audio-card";
149                 ...
150                 /*
151                  * CTU setting
152                  * All input data will be converted to 2ch
153                  * as output data
154                  */
155                 simple-audio-card,convert-channels = <2>;
156                 ...
157                 simple-audio-card,cpu {
158                         sound-dai = <&rcar_sound>;
159                 };
160                 simple-audio-card,codec {
161                         ...
162                 };
163         };
164
165 Ex) Exchange output channel
166  Input -> Output
167   1ch  ->  0ch
168   0ch  ->  1ch
169
170   example of using matrix
171         output 0ch = (input 0ch x 0) + (input 1ch x 1)
172         output 1ch = (input 0ch x 1) + (input 1ch x 0)
173
174         amixer set "CTU Reset" on
175         amixer set "CTU Pass" 9,10
176         amixer set "CTU SV0" 0,4194304
177         amixer set "CTU SV1" 4194304,0
178
179  example of changing connection
180         amixer set "CTU Reset" on
181         amixer set "CTU Pass" 2,1
182
183 =============================================
184 * MIX (Mixer)
185 =============================================
186
187 MIX merges 2 sounds path. You can see 2 sound interface on system,
188 and these sounds will be merged by MIX.
189
190         aplay -D plughw:0,0 xxxx.wav &
191         aplay -D plughw:0,1 yyyy.wav
192
193 You need to use "simple-scu-audio-card" sound card for it.
194 Ex)
195         [MEM] -> [SRC1] -> [CTU02] -+-> [MIX0] -> [DVC0] -> [SSI0]
196                                     |
197         [MEM] -> [SRC2] -> [CTU03] -+
198
199         sound {
200                 #address-cells = <1>;
201                 #size-cells = <0>;
202
203                 compatible = "simple-scu-audio-card";
204                 ...
205                 simple-audio-card,cpu@0 {
206                         reg = <0>;
207                         sound-dai = <&rcar_sound 0>;
208                 };
209                 simple-audio-card,cpu@1 {
210                         reg = <1>;
211                         sound-dai = <&rcar_sound 1>;
212                 };
213                 simple-audio-card,codec {
214                         ...
215                 };
216         };
217
218         &rcar_sound {
219                 ...
220                 rcar_sound,dai {
221                         dai0 {
222                                 playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>;
223                         };
224                         dai1 {
225                                 playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>;
226                         };
227                 };
228         };
229
230 =============================================
231 * DVC (Digital Volume and Mute Function)
232 =============================================
233
234 DVC controls Playback/Capture volume.
235
236 Playback Volume
237         amixer set "DVC Out" 100%
238
239 Capture Volume
240         amixer set "DVC In" 100%
241
242 Playback Mute
243         amixer set "DVC Out Mute" on
244
245 Capture Mute
246         amixer set "DVC In Mute" on
247
248 Volume Ramp
249         amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
250         amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
251         amixer set "DVC Out Ramp" on
252         aplay xxx.wav &
253         amixer set "DVC Out"  80%  // Volume Down
254         amixer set "DVC Out" 100%  // Volume Up
255
256 =============================================
257 * SSIU (Serial Sound Interface Unit)
258 =============================================
259
260 There is no DT settings for SSIU, because SSIU will be automatically
261 selected via SSI.
262 SSIU can avoid some under/over run error, because it has some buffer.
263 But you can't use it if SSI was PIO mode.
264 In DMA mode, you can select not to use SSIU by using "no-busif" on DT.
265
266         &ssi0 {
267                 no-busif;
268         };
269
270 =============================================
271 * SSI (Serial Sound Interface)
272 =============================================
273
274 **  PIO mode
275
276 You can use PIO mode which is for connection check by using.
277 Note: The system will drop non-SSI modules in PIO mode
278 even though if DT is selecting other modules.
279
280         &ssi0 {
281                 pio-transfer
282         };
283
284 ** DMA mode without SSIU
285
286 You can use DMA without SSIU.
287 Note: under/over run, or noise are likely to occur
288
289         &ssi0 {
290                 no-busif;
291         };
292
293 ** PIN sharing
294
295 Each SSI can share WS pin. It is based on platform.
296 This is example if SSI1 want to share WS pin with SSI0
297
298         &ssi1 {
299                 shared-pin;
300         };
301
302 ** Multi-SSI
303
304 You can use Multi-SSI.
305 This is example of SSI0/SSI1/SSI2 (= for 6ch)
306
307         &rcar_sound {
308                 ...
309                 rcar_sound,dai {
310                         dai0 {
311                                 playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>;
312                         };
313                 };
314         };
315
316 ** TDM-SSI
317
318 You can use TDM with SSI.
319 This is example of TDM 6ch.
320 Driver can automatically switches TDM <-> stereo mode in this case.
321
322         rsnd_tdm: sound {
323                 compatible = "simple-audio-card";
324                 ...
325                 simple-audio-card,cpu {
326                         /* system can use TDM 6ch */
327                         dai-tdm-slot-num = <6>;
328                         sound-dai = <&rcar_sound>;
329                 };
330                 simple-audio-card,codec {
331                         ...
332                 };
333         };
334
335
336 =============================================
337 Required properties:
338 =============================================
339
340 - compatible                    : "renesas,rcar_sound-<soctype>", fallbacks
341                                   "renesas,rcar_sound-gen1" if generation1, and
342                                   "renesas,rcar_sound-gen2" if generation2 (or RZ/G1)
343                                   "renesas,rcar_sound-gen3" if generation3
344                                   Examples with soctypes are:
345                                     - "renesas,rcar_sound-r8a7743" (RZ/G1M)
346                                     - "renesas,rcar_sound-r8a7745" (RZ/G1E)
347                                     - "renesas,rcar_sound-r8a7778" (R-Car M1A)
348                                     - "renesas,rcar_sound-r8a7779" (R-Car H1)
349                                     - "renesas,rcar_sound-r8a7790" (R-Car H2)
350                                     - "renesas,rcar_sound-r8a7791" (R-Car M2-W)
351                                     - "renesas,rcar_sound-r8a7793" (R-Car M2-N)
352                                     - "renesas,rcar_sound-r8a7794" (R-Car E2)
353                                     - "renesas,rcar_sound-r8a7795" (R-Car H3)
354                                     - "renesas,rcar_sound-r8a7796" (R-Car M3-W)
355                                     - "renesas,rcar_sound-r8a77965" (R-Car M3-N)
356 - reg                           : Should contain the register physical address.
357                                   required register is
358                                    SRU/ADG/SSI      if generation1
359                                    SRU/ADG/SSIU/SSI if generation2
360 - rcar_sound,ssi                : Should contain SSI feature.
361                                   The number of SSI subnode should be same as HW.
362                                   see below for detail.
363 - rcar_sound,src                : Should contain SRC feature.
364                                   The number of SRC subnode should be same as HW.
365                                   see below for detail.
366 - rcar_sound,ctu                : Should contain CTU feature.
367                                   The number of CTU subnode should be same as HW.
368                                   see below for detail.
369 - rcar_sound,mix                : Should contain MIX feature.
370                                   The number of MIX subnode should be same as HW.
371                                   see below for detail.
372 - rcar_sound,dvc                : Should contain DVC feature.
373                                   The number of DVC subnode should be same as HW.
374                                   see below for detail.
375 - rcar_sound,dai                : DAI contents.
376                                   The number of DAI subnode should be same as HW.
377                                   see below for detail.
378 - #sound-dai-cells              : it must be 0 if your system is using single DAI
379                                   it must be 1 if your system is using multi  DAI
380 - clocks                        : References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
381 - clock-names                   : List of necessary clock names.
382                                   "ssi-all", "ssi.X", "src.X", "mix.X", "ctu.X",
383                                   "dvc.X", "clk_a", "clk_b", "clk_c", "clk_i"
384
385 Optional properties:
386 - #clock-cells                  : it must be 0 if your system has audio_clkout
387                                   it must be 1 if your system has audio_clkout0/1/2/3
388 - clock-frequency               : for all audio_clkout0/1/2/3
389 - clkout-lr-asynchronous        : boolean property. it indicates that audio_clkoutn
390                                   is asynchronizes with lr-clock.
391 - resets                        : References to SSI resets.
392 - reset-names                   : List of valid reset names.
393                                   "ssi-all", "ssi.X"
394
395 SSI subnode properties:
396 - interrupts                    : Should contain SSI interrupt for PIO transfer
397 - shared-pin                    : if shared clock pin
398 - pio-transfer                  : use PIO transfer mode
399 - no-busif                      : BUSIF is not ussed when [mem -> SSI] via DMA case
400 - dma                           : Should contain Audio DMAC entry
401 - dma-names                     : SSI  case "rx"  (=playback), "tx"  (=capture)
402                                   SSIU case "rxu" (=playback), "txu" (=capture)
403
404 SRC subnode properties:
405 - dma                           : Should contain Audio DMAC entry
406 - dma-names                     : "rx" (=playback), "tx" (=capture)
407
408 DVC subnode properties:
409 - dma                           : Should contain Audio DMAC entry
410 - dma-names                     : "tx" (=playback/capture)
411
412 DAI subnode properties:
413 - playback                      : list of playback modules
414 - capture                       : list of capture  modules
415
416
417 =============================================
418 Example:
419 =============================================
420
421 rcar_sound: sound@ec500000 {
422         #sound-dai-cells = <1>;
423         compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2";
424         reg =   <0 0xec500000 0 0x1000>, /* SCU */
425                 <0 0xec5a0000 0 0x100>,  /* ADG */
426                 <0 0xec540000 0 0x1000>, /* SSIU */
427                 <0 0xec541000 0 0x1280>, /* SSI */
428                 <0 0xec740000 0 0x200>;  /* Audio DMAC peri peri*/
429         reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
430
431         clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>,
432                 <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>,
433                 <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>,
434                 <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>,
435                 <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>,
436                 <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>,
437                 <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>,
438                 <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>,
439                 <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
440                 <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
441                 <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
442                 <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
443                 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
444         clock-names = "ssi-all",
445                         "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
446                         "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
447                         "src.9", "src.8", "src.7", "src.6", "src.5",
448                         "src.4", "src.3", "src.2", "src.1", "src.0",
449                         "dvc.0", "dvc.1",
450                         "clk_a", "clk_b", "clk_c", "clk_i";
451
452         rcar_sound,dvc {
453                 dvc0: dvc-0 {
454                         dmas = <&audma0 0xbc>;
455                         dma-names = "tx";
456                 };
457                 dvc1: dvc-1 {
458                         dmas = <&audma0 0xbe>;
459                         dma-names = "tx";
460                 };
461         };
462
463         rcar_sound,mix {
464                 mix0: mix-0 { };
465                 mix1: mix-1 { };
466         };
467
468         rcar_sound,ctu {
469                 ctu00: ctu-0 { };
470                 ctu01: ctu-1 { };
471                 ctu02: ctu-2 { };
472                 ctu03: ctu-3 { };
473                 ctu10: ctu-4 { };
474                 ctu11: ctu-5 { };
475                 ctu12: ctu-6 { };
476                 ctu13: ctu-7 { };
477         };
478
479         rcar_sound,src {
480                 src0: src-0 {
481                         interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
482                         dmas = <&audma0 0x85>, <&audma1 0x9a>;
483                         dma-names = "rx", "tx";
484                 };
485                 src1: src-1 {
486                         interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
487                         dmas = <&audma0 0x87>, <&audma1 0x9c>;
488                         dma-names = "rx", "tx";
489                 };
490                 src2: src-2 {
491                         interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
492                         dmas = <&audma0 0x89>, <&audma1 0x9e>;
493                         dma-names = "rx", "tx";
494                 };
495                 src3: src-3 {
496                         interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
497                         dmas = <&audma0 0x8b>, <&audma1 0xa0>;
498                         dma-names = "rx", "tx";
499                 };
500                 src4: src-4 {
501                         interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
502                         dmas = <&audma0 0x8d>, <&audma1 0xb0>;
503                         dma-names = "rx", "tx";
504                 };
505                 src5: src-5 {
506                         interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
507                         dmas = <&audma0 0x8f>, <&audma1 0xb2>;
508                         dma-names = "rx", "tx";
509                 };
510                 src6: src-6 {
511                         interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
512                         dmas = <&audma0 0x91>, <&audma1 0xb4>;
513                         dma-names = "rx", "tx";
514                 };
515                 src7: src-7 {
516                         interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
517                         dmas = <&audma0 0x93>, <&audma1 0xb6>;
518                         dma-names = "rx", "tx";
519                 };
520                 src8: src-8 {
521                         interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
522                         dmas = <&audma0 0x95>, <&audma1 0xb8>;
523                         dma-names = "rx", "tx";
524                 };
525                 src9: src-9 {
526                         interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
527                         dmas = <&audma0 0x97>, <&audma1 0xba>;
528                         dma-names = "rx", "tx";
529                 };
530         };
531
532         rcar_sound,ssi {
533                 ssi0: ssi-0 {
534                         interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
535                         dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
536                         dma-names = "rx", "tx", "rxu", "txu";
537                 };
538                 ssi1: ssi-1 {
539                         interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
540                         dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
541                         dma-names = "rx", "tx", "rxu", "txu";
542                 };
543                 ssi2: ssi-2 {
544                         interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
545                         dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
546                         dma-names = "rx", "tx", "rxu", "txu";
547                 };
548                 ssi3: ssi-3 {
549                         interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
550                         dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
551                         dma-names = "rx", "tx", "rxu", "txu";
552                 };
553                 ssi4: ssi-4 {
554                         interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
555                         dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
556                         dma-names = "rx", "tx", "rxu", "txu";
557                 };
558                 ssi5: ssi-5 {
559                         interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
560                         dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
561                         dma-names = "rx", "tx", "rxu", "txu";
562                 };
563                 ssi6: ssi-6 {
564                         interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
565                         dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
566                         dma-names = "rx", "tx", "rxu", "txu";
567                 };
568                 ssi7: ssi-7 {
569                         interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
570                         dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
571                         dma-names = "rx", "tx", "rxu", "txu";
572                 };
573                 ssi8: ssi-8 {
574                         interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
575                         dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
576                         dma-names = "rx", "tx", "rxu", "txu";
577                 };
578                 ssi9: ssi-9 {
579                         interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
580                         dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
581                         dma-names = "rx", "tx", "rxu", "txu";
582                 };
583         };
584
585         rcar_sound,dai {
586                 dai0 {
587                         playback = <&ssi5 &src5>;
588                         capture  = <&ssi6>;
589                 };
590                 dai1 {
591                         playback = <&ssi3>;
592                 };
593                 dai2 {
594                         capture  = <&ssi4>;
595                 };
596                 dai3 {
597                         playback = <&ssi7>;
598                 };
599                 dai4 {
600                         capture  = <&ssi8>;
601                 };
602         };
603 };
604
605 =============================================
606 Example: simple sound card
607 =============================================
608
609         rsnd_ak4643: sound {
610                 compatible = "simple-audio-card";
611
612                 simple-audio-card,format = "left_j";
613                 simple-audio-card,bitclock-master = <&sndcodec>;
614                 simple-audio-card,frame-master = <&sndcodec>;
615
616                 sndcpu: simple-audio-card,cpu {
617                         sound-dai = <&rcar_sound>;
618                 };
619
620                 sndcodec: simple-audio-card,codec {
621                         sound-dai = <&ak4643>;
622                         clocks = <&audio_clock>;
623                 };
624         };
625
626 &rcar_sound {
627         pinctrl-0 = <&sound_pins &sound_clk_pins>;
628         pinctrl-names = "default";
629
630         /* Single DAI */
631         #sound-dai-cells = <0>;
632
633
634         rcar_sound,dai {
635                 dai0 {
636                         playback = <&ssi0 &src2 &dvc0>;
637                         capture  = <&ssi1 &src3 &dvc1>;
638                 };
639         };
640 };
641
642 &ssi1 {
643         shared-pin;
644 };
645
646 =============================================
647 Example: simple sound card for TDM
648 =============================================
649
650         rsnd_tdm: sound {
651                 compatible = "simple-audio-card";
652
653                 simple-audio-card,format = "left_j";
654                 simple-audio-card,bitclock-master = <&sndcodec>;
655                 simple-audio-card,frame-master = <&sndcodec>;
656
657                 sndcpu: simple-audio-card,cpu {
658                         sound-dai = <&rcar_sound>;
659                         dai-tdm-slot-num = <6>;
660                 };
661
662                 sndcodec: simple-audio-card,codec {
663                         sound-dai = <&xxx>;
664                 };
665         };
666
667 =============================================
668 Example: simple sound card for Multi channel
669 =============================================
670
671 &rcar_sound {
672         pinctrl-0 = <&sound_pins &sound_clk_pins>;
673         pinctrl-names = "default";
674
675         /* Single DAI */
676         #sound-dai-cells = <0>;
677
678
679         rcar_sound,dai {
680                 dai0 {
681                         playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>;
682                 };
683         };
684 };