| .. | .. |
|---|
| 39 | 39 | Playback: [MEM] -> [SRC2] -> [DVC0] -> [SSIU0/SSI0] -> [codec] |
|---|
| 40 | 40 | Capture: [MEM] <- [DVC1] <- [SRC3] <- [SSIU1/SSI1] <- [codec] |
|---|
| 41 | 41 | |
|---|
| 42 | | - &rcar_sound { |
|---|
| 43 | | - ... |
|---|
| 44 | | - rcar_sound,dai { |
|---|
| 45 | | - dai0 { |
|---|
| 46 | | - playback = <&ssi0 &src2 &dvc0>; |
|---|
| 47 | | - capture = <&ssi1 &src3 &dvc1>; |
|---|
| 48 | | - }; |
|---|
| 49 | | - }; |
|---|
| 50 | | - }; |
|---|
| 42 | +see "Example: simple sound card" |
|---|
| 51 | 43 | |
|---|
| 52 | 44 | You can use below. |
|---|
| 53 | 45 | ${LINUX}/arch/arm/boot/dts/r8a7790.dts can be good example. |
|---|
| .. | .. |
|---|
| 83 | 75 | ** Asynchronous mode |
|---|
| 84 | 76 | ------------------ |
|---|
| 85 | 77 | |
|---|
| 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 | | - }; |
|---|
| 78 | +You need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. |
|---|
| 79 | +see "Example: simple sound card for Asynchronous mode" |
|---|
| 109 | 80 | |
|---|
| 110 | 81 | ------------------ |
|---|
| 111 | 82 | ** Synchronous mode |
|---|
| .. | .. |
|---|
| 141 | 112 | ${LINUX}/sound/soc/sh/rcar/ctu.c |
|---|
| 142 | 113 | - comment of header |
|---|
| 143 | 114 | |
|---|
| 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 | | - }; |
|---|
| 115 | +You need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. |
|---|
| 116 | +see "Example: simple sound card for channel convert" |
|---|
| 164 | 117 | |
|---|
| 165 | 118 | Ex) Exchange output channel |
|---|
| 166 | 119 | Input -> Output |
|---|
| .. | .. |
|---|
| 190 | 143 | aplay -D plughw:0,0 xxxx.wav & |
|---|
| 191 | 144 | aplay -D plughw:0,1 yyyy.wav |
|---|
| 192 | 145 | |
|---|
| 193 | | -You need to use "simple-scu-audio-card" sound card for it. |
|---|
| 146 | +You need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. |
|---|
| 194 | 147 | Ex) |
|---|
| 195 | 148 | [MEM] -> [SRC1] -> [CTU02] -+-> [MIX0] -> [DVC0] -> [SSI0] |
|---|
| 196 | 149 | | |
|---|
| 197 | 150 | [MEM] -> [SRC2] -> [CTU03] -+ |
|---|
| 198 | 151 | |
|---|
| 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 | | - }; |
|---|
| 152 | +see "Example: simple sound card for MIXer" |
|---|
| 229 | 153 | |
|---|
| 230 | 154 | ============================================= |
|---|
| 231 | 155 | * DVC (Digital Volume and Mute Function) |
|---|
| .. | .. |
|---|
| 257 | 181 | * SSIU (Serial Sound Interface Unit) |
|---|
| 258 | 182 | ============================================= |
|---|
| 259 | 183 | |
|---|
| 260 | | -There is no DT settings for SSIU, because SSIU will be automatically |
|---|
| 261 | | -selected via SSI. |
|---|
| 262 | 184 | SSIU can avoid some under/over run error, because it has some buffer. |
|---|
| 263 | 185 | 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. |
|---|
| 186 | +In DMA mode, you can select not to use SSIU by using "no-busif" via SSI. |
|---|
| 265 | 187 | |
|---|
| 266 | | - &ssi0 { |
|---|
| 267 | | - no-busif; |
|---|
| 268 | | - }; |
|---|
| 188 | +SSIU handles BUSIF which will be used for TDM Split mode. |
|---|
| 189 | +This driver is assuming that audio-graph card will be used. |
|---|
| 190 | + |
|---|
| 191 | +TDM Split mode merges 4 sounds. You can see 4 sound interface on system, |
|---|
| 192 | +and these sounds will be merged SSIU/SSI. |
|---|
| 193 | + |
|---|
| 194 | + aplay -D plughw:0,0 xxxx.wav & |
|---|
| 195 | + aplay -D plughw:0,1 xxxx.wav & |
|---|
| 196 | + aplay -D plughw:0,2 xxxx.wav & |
|---|
| 197 | + aplay -D plughw:0,3 xxxx.wav |
|---|
| 198 | + |
|---|
| 199 | + 2ch 8ch |
|---|
| 200 | + [MEM] -> [SSIU 30] -+-> [SSIU 3] --> [Codec] |
|---|
| 201 | + 2ch | |
|---|
| 202 | + [MEM] -> [SSIU 31] -+ |
|---|
| 203 | + 2ch | |
|---|
| 204 | + [MEM] -> [SSIU 32] -+ |
|---|
| 205 | + 2ch | |
|---|
| 206 | + [MEM] -> [SSIU 33] -+ |
|---|
| 207 | + |
|---|
| 208 | +see "Example: simple sound card for TDM Split" |
|---|
| 269 | 209 | |
|---|
| 270 | 210 | ============================================= |
|---|
| 271 | 211 | * SSI (Serial Sound Interface) |
|---|
| .. | .. |
|---|
| 304 | 244 | You can use Multi-SSI. |
|---|
| 305 | 245 | This is example of SSI0/SSI1/SSI2 (= for 6ch) |
|---|
| 306 | 246 | |
|---|
| 307 | | - &rcar_sound { |
|---|
| 308 | | - ... |
|---|
| 309 | | - rcar_sound,dai { |
|---|
| 310 | | - dai0 { |
|---|
| 311 | | - playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>; |
|---|
| 312 | | - }; |
|---|
| 313 | | - }; |
|---|
| 314 | | - }; |
|---|
| 247 | +see "Example: simple sound card for Multi channel" |
|---|
| 315 | 248 | |
|---|
| 316 | 249 | ** TDM-SSI |
|---|
| 317 | 250 | |
|---|
| .. | .. |
|---|
| 319 | 252 | This is example of TDM 6ch. |
|---|
| 320 | 253 | Driver can automatically switches TDM <-> stereo mode in this case. |
|---|
| 321 | 254 | |
|---|
| 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 | | - |
|---|
| 255 | +see "Example: simple sound card for TDM" |
|---|
| 335 | 256 | |
|---|
| 336 | 257 | ============================================= |
|---|
| 337 | 258 | Required properties: |
|---|
| .. | .. |
|---|
| 340 | 261 | - compatible : "renesas,rcar_sound-<soctype>", fallbacks |
|---|
| 341 | 262 | "renesas,rcar_sound-gen1" if generation1, and |
|---|
| 342 | 263 | "renesas,rcar_sound-gen2" if generation2 (or RZ/G1) |
|---|
| 343 | | - "renesas,rcar_sound-gen3" if generation3 |
|---|
| 264 | + "renesas,rcar_sound-gen3" if generation3 (or RZ/G2) |
|---|
| 344 | 265 | Examples with soctypes are: |
|---|
| 266 | + - "renesas,rcar_sound-r8a7742" (RZ/G1H) |
|---|
| 345 | 267 | - "renesas,rcar_sound-r8a7743" (RZ/G1M) |
|---|
| 268 | + - "renesas,rcar_sound-r8a7744" (RZ/G1N) |
|---|
| 346 | 269 | - "renesas,rcar_sound-r8a7745" (RZ/G1E) |
|---|
| 270 | + - "renesas,rcar_sound-r8a77470" (RZ/G1C) |
|---|
| 271 | + - "renesas,rcar_sound-r8a774a1" (RZ/G2M) |
|---|
| 272 | + - "renesas,rcar_sound-r8a774b1" (RZ/G2N) |
|---|
| 273 | + - "renesas,rcar_sound-r8a774c0" (RZ/G2E) |
|---|
| 274 | + - "renesas,rcar_sound-r8a774e1" (RZ/G2H) |
|---|
| 347 | 275 | - "renesas,rcar_sound-r8a7778" (R-Car M1A) |
|---|
| 348 | 276 | - "renesas,rcar_sound-r8a7779" (R-Car H1) |
|---|
| 349 | 277 | - "renesas,rcar_sound-r8a7790" (R-Car H2) |
|---|
| .. | .. |
|---|
| 353 | 281 | - "renesas,rcar_sound-r8a7795" (R-Car H3) |
|---|
| 354 | 282 | - "renesas,rcar_sound-r8a7796" (R-Car M3-W) |
|---|
| 355 | 283 | - "renesas,rcar_sound-r8a77965" (R-Car M3-N) |
|---|
| 284 | + - "renesas,rcar_sound-r8a77990" (R-Car E3) |
|---|
| 285 | + - "renesas,rcar_sound-r8a77995" (R-Car D3) |
|---|
| 356 | 286 | - reg : Should contain the register physical address. |
|---|
| 357 | 287 | required register is |
|---|
| 358 | 288 | SRU/ADG/SSI if generation1 |
|---|
| 359 | | - SRU/ADG/SSIU/SSI if generation2 |
|---|
| 289 | + SRU/ADG/SSIU/SSI/AUDIO-DMAC-periperi if generation2/generation3 |
|---|
| 290 | + Select extended AUDIO-DMAC-periperi address if SoC has it, |
|---|
| 291 | + otherwise select normal AUDIO-DMAC-periperi address. |
|---|
| 292 | +- reg-names : Should contain the register names. |
|---|
| 293 | + scu/adg/ssi if generation1 |
|---|
| 294 | + scu/adg/ssiu/ssi/audmapp if generation2/generation3 |
|---|
| 360 | 295 | - rcar_sound,ssi : Should contain SSI feature. |
|---|
| 361 | 296 | The number of SSI subnode should be same as HW. |
|---|
| 297 | + see below for detail. |
|---|
| 298 | +- rcar_sound,ssiu : Should contain SSIU feature. |
|---|
| 299 | + The number of SSIU subnode should be same as HW. |
|---|
| 362 | 300 | see below for detail. |
|---|
| 363 | 301 | - rcar_sound,src : Should contain SRC feature. |
|---|
| 364 | 302 | The number of SRC subnode should be same as HW. |
|---|
| .. | .. |
|---|
| 399 | 337 | - no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case |
|---|
| 400 | 338 | - dma : Should contain Audio DMAC entry |
|---|
| 401 | 339 | - dma-names : SSI case "rx" (=playback), "tx" (=capture) |
|---|
| 340 | + Deprecated: see SSIU subnode properties |
|---|
| 402 | 341 | SSIU case "rxu" (=playback), "txu" (=capture) |
|---|
| 342 | + |
|---|
| 343 | +SSIU subnode properties: |
|---|
| 344 | +- dma : Should contain Audio DMAC entry |
|---|
| 345 | +- dma-names : "rx" (=playback), "tx" (=capture) |
|---|
| 403 | 346 | |
|---|
| 404 | 347 | SRC subnode properties: |
|---|
| 405 | 348 | - dma : Should contain Audio DMAC entry |
|---|
| .. | .. |
|---|
| 529 | 472 | }; |
|---|
| 530 | 473 | }; |
|---|
| 531 | 474 | |
|---|
| 475 | + rcar_sound,ssiu { |
|---|
| 476 | + ssiu00: ssiu-0 { |
|---|
| 477 | + dmas = <&audma0 0x15>, <&audma1 0x16>; |
|---|
| 478 | + dma-names = "rx", "tx"; |
|---|
| 479 | + }; |
|---|
| 480 | + ssiu01: ssiu-1 { |
|---|
| 481 | + dmas = <&audma0 0x35>, <&audma1 0x36>; |
|---|
| 482 | + dma-names = "rx", "tx"; |
|---|
| 483 | + }; |
|---|
| 484 | + |
|---|
| 485 | + ... |
|---|
| 486 | + |
|---|
| 487 | + ssiu95: ssiu-49 { |
|---|
| 488 | + dmas = <&audma0 0xA5>, <&audma1 0xA6>; |
|---|
| 489 | + dma-names = "rx", "tx"; |
|---|
| 490 | + }; |
|---|
| 491 | + ssiu96: ssiu-50 { |
|---|
| 492 | + dmas = <&audma0 0xA7>, <&audma1 0xA8>; |
|---|
| 493 | + dma-names = "rx", "tx"; |
|---|
| 494 | + }; |
|---|
| 495 | + ssiu97: ssiu-51 { |
|---|
| 496 | + dmas = <&audma0 0xA9>, <&audma1 0xAA>; |
|---|
| 497 | + dma-names = "rx", "tx"; |
|---|
| 498 | + }; |
|---|
| 499 | + }; |
|---|
| 500 | + |
|---|
| 532 | 501 | rcar_sound,ssi { |
|---|
| 533 | 502 | ssi0: ssi-0 { |
|---|
| 534 | 503 | interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 535 | | - dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; |
|---|
| 536 | | - dma-names = "rx", "tx", "rxu", "txu"; |
|---|
| 504 | + dmas = <&audma0 0x01>, <&audma1 0x02>; |
|---|
| 505 | + dma-names = "rx", "tx"; |
|---|
| 537 | 506 | }; |
|---|
| 538 | 507 | ssi1: ssi-1 { |
|---|
| 539 | 508 | interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 540 | | - dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; |
|---|
| 541 | | - dma-names = "rx", "tx", "rxu", "txu"; |
|---|
| 509 | + dmas = <&audma0 0x03>, <&audma1 0x04>; |
|---|
| 510 | + dma-names = "rx", "tx"; |
|---|
| 542 | 511 | }; |
|---|
| 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 | | - }; |
|---|
| 512 | + |
|---|
| 513 | + ... |
|---|
| 514 | + |
|---|
| 573 | 515 | ssi8: ssi-8 { |
|---|
| 574 | 516 | interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 575 | | - dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; |
|---|
| 576 | | - dma-names = "rx", "tx", "rxu", "txu"; |
|---|
| 517 | + dmas = <&audma0 0x11>, <&audma1 0x12>; |
|---|
| 518 | + dma-names = "rx", "tx"; |
|---|
| 577 | 519 | }; |
|---|
| 578 | 520 | ssi9: ssi-9 { |
|---|
| 579 | 521 | interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 580 | | - dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; |
|---|
| 581 | | - dma-names = "rx", "tx", "rxu", "txu"; |
|---|
| 522 | + dmas = <&audma0 0x13>, <&audma1 0x14>; |
|---|
| 523 | + dma-names = "rx", "tx"; |
|---|
| 582 | 524 | }; |
|---|
| 583 | 525 | }; |
|---|
| 584 | 526 | |
|---|
| .. | .. |
|---|
| 644 | 586 | }; |
|---|
| 645 | 587 | |
|---|
| 646 | 588 | ============================================= |
|---|
| 589 | +Example: simple sound card for Asynchronous mode |
|---|
| 590 | +============================================= |
|---|
| 591 | + |
|---|
| 592 | +sound { |
|---|
| 593 | + compatible = "simple-scu-audio-card"; |
|---|
| 594 | + ... |
|---|
| 595 | + /* |
|---|
| 596 | + * SRC Asynchronous mode setting |
|---|
| 597 | + * Playback: |
|---|
| 598 | + * All input data will be converted to 48kHz |
|---|
| 599 | + * Capture: |
|---|
| 600 | + * Inputed 48kHz data will be converted to |
|---|
| 601 | + * system specified Hz |
|---|
| 602 | + */ |
|---|
| 603 | + simple-audio-card,convert-rate = <48000>; |
|---|
| 604 | + ... |
|---|
| 605 | + simple-audio-card,cpu { |
|---|
| 606 | + sound-dai = <&rcar_sound>; |
|---|
| 607 | + }; |
|---|
| 608 | + simple-audio-card,codec { |
|---|
| 609 | + ... |
|---|
| 610 | + }; |
|---|
| 611 | +}; |
|---|
| 612 | + |
|---|
| 613 | +============================================= |
|---|
| 614 | +Example: simple sound card for channel convert |
|---|
| 615 | +============================================= |
|---|
| 616 | + |
|---|
| 617 | +sound { |
|---|
| 618 | + compatible = "simple-scu-audio-card"; |
|---|
| 619 | + ... |
|---|
| 620 | + /* |
|---|
| 621 | + * CTU setting |
|---|
| 622 | + * All input data will be converted to 2ch |
|---|
| 623 | + * as output data |
|---|
| 624 | + */ |
|---|
| 625 | + simple-audio-card,convert-channels = <2>; |
|---|
| 626 | + ... |
|---|
| 627 | + simple-audio-card,cpu { |
|---|
| 628 | + sound-dai = <&rcar_sound>; |
|---|
| 629 | + }; |
|---|
| 630 | + simple-audio-card,codec { |
|---|
| 631 | + ... |
|---|
| 632 | + }; |
|---|
| 633 | +}; |
|---|
| 634 | + |
|---|
| 635 | +============================================= |
|---|
| 636 | +Example: simple sound card for MIXer |
|---|
| 637 | +============================================= |
|---|
| 638 | + |
|---|
| 639 | +sound { |
|---|
| 640 | + compatible = "simple-scu-audio-card"; |
|---|
| 641 | + ... |
|---|
| 642 | + simple-audio-card,cpu@0 { |
|---|
| 643 | + sound-dai = <&rcar_sound 0>; |
|---|
| 644 | + }; |
|---|
| 645 | + simple-audio-card,cpu@1 { |
|---|
| 646 | + sound-dai = <&rcar_sound 1>; |
|---|
| 647 | + }; |
|---|
| 648 | + simple-audio-card,codec { |
|---|
| 649 | + ... |
|---|
| 650 | + }; |
|---|
| 651 | +}; |
|---|
| 652 | + |
|---|
| 653 | +&rcar_sound { |
|---|
| 654 | + ... |
|---|
| 655 | + rcar_sound,dai { |
|---|
| 656 | + dai0 { |
|---|
| 657 | + playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; |
|---|
| 658 | + }; |
|---|
| 659 | + dai1 { |
|---|
| 660 | + playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; |
|---|
| 661 | + }; |
|---|
| 662 | + }; |
|---|
| 663 | +}; |
|---|
| 664 | + |
|---|
| 665 | +============================================= |
|---|
| 647 | 666 | Example: simple sound card for TDM |
|---|
| 648 | 667 | ============================================= |
|---|
| 649 | 668 | |
|---|
| 650 | | - rsnd_tdm: sound { |
|---|
| 651 | | - compatible = "simple-audio-card"; |
|---|
| 669 | +rsnd_tdm: sound { |
|---|
| 670 | + compatible = "simple-audio-card"; |
|---|
| 652 | 671 | |
|---|
| 653 | | - simple-audio-card,format = "left_j"; |
|---|
| 654 | | - simple-audio-card,bitclock-master = <&sndcodec>; |
|---|
| 655 | | - simple-audio-card,frame-master = <&sndcodec>; |
|---|
| 672 | + simple-audio-card,format = "left_j"; |
|---|
| 673 | + simple-audio-card,bitclock-master = <&sndcodec>; |
|---|
| 674 | + simple-audio-card,frame-master = <&sndcodec>; |
|---|
| 656 | 675 | |
|---|
| 657 | | - sndcpu: simple-audio-card,cpu { |
|---|
| 658 | | - sound-dai = <&rcar_sound>; |
|---|
| 659 | | - dai-tdm-slot-num = <6>; |
|---|
| 676 | + sndcpu: simple-audio-card,cpu { |
|---|
| 677 | + sound-dai = <&rcar_sound>; |
|---|
| 678 | + dai-tdm-slot-num = <6>; |
|---|
| 679 | + }; |
|---|
| 680 | + |
|---|
| 681 | + sndcodec: simple-audio-card,codec { |
|---|
| 682 | + sound-dai = <&xxx>; |
|---|
| 683 | + }; |
|---|
| 684 | +}; |
|---|
| 685 | + |
|---|
| 686 | +============================================= |
|---|
| 687 | +Example: simple sound card for TDM Split |
|---|
| 688 | +============================================= |
|---|
| 689 | + |
|---|
| 690 | +sound_card: sound { |
|---|
| 691 | + compatible = "audio-graph-scu-card"; |
|---|
| 692 | + prefix = "xxxx"; |
|---|
| 693 | + routing = "xxxx Playback", "DAI0 Playback", |
|---|
| 694 | + "xxxx Playback", "DAI1 Playback", |
|---|
| 695 | + "xxxx Playback", "DAI2 Playback", |
|---|
| 696 | + "xxxx Playback", "DAI3 Playback"; |
|---|
| 697 | + convert-channels = <8>; /* TDM Split */ |
|---|
| 698 | + |
|---|
| 699 | + dais = <&rsnd_port0 /* playback ch1/ch2 */ |
|---|
| 700 | + &rsnd_port1 /* playback ch3/ch4 */ |
|---|
| 701 | + &rsnd_port2 /* playback ch5/ch6 */ |
|---|
| 702 | + &rsnd_port3 /* playback ch7/ch8 */ |
|---|
| 703 | + >; |
|---|
| 704 | +}; |
|---|
| 705 | + |
|---|
| 706 | +audio-codec { |
|---|
| 707 | + ... |
|---|
| 708 | + port { |
|---|
| 709 | + codec_0: endpoint@1 { |
|---|
| 710 | + remote-endpoint = <&rsnd_ep0>; |
|---|
| 660 | 711 | }; |
|---|
| 661 | | - |
|---|
| 662 | | - sndcodec: simple-audio-card,codec { |
|---|
| 663 | | - sound-dai = <&xxx>; |
|---|
| 712 | + codec_1: endpoint@2 { |
|---|
| 713 | + remote-endpoint = <&rsnd_ep1>; |
|---|
| 714 | + }; |
|---|
| 715 | + codec_2: endpoint@3 { |
|---|
| 716 | + remote-endpoint = <&rsnd_ep2>; |
|---|
| 717 | + }; |
|---|
| 718 | + codec_3: endpoint@4 { |
|---|
| 719 | + remote-endpoint = <&rsnd_ep3>; |
|---|
| 664 | 720 | }; |
|---|
| 665 | 721 | }; |
|---|
| 722 | +}; |
|---|
| 723 | + |
|---|
| 724 | +&rcar_sound { |
|---|
| 725 | + ... |
|---|
| 726 | + ports { |
|---|
| 727 | + rsnd_port0: port@0 { |
|---|
| 728 | + rsnd_ep0: endpoint { |
|---|
| 729 | + remote-endpoint = <&codec_0>; |
|---|
| 730 | + ... |
|---|
| 731 | + playback = <&ssiu30 &ssi3>; |
|---|
| 732 | + }; |
|---|
| 733 | + }; |
|---|
| 734 | + rsnd_port1: port@1 { |
|---|
| 735 | + rsnd_ep1: endpoint { |
|---|
| 736 | + remote-endpoint = <&codec_1>; |
|---|
| 737 | + ... |
|---|
| 738 | + playback = <&ssiu31 &ssi3>; |
|---|
| 739 | + }; |
|---|
| 740 | + }; |
|---|
| 741 | + rsnd_port2: port@2 { |
|---|
| 742 | + rsnd_ep2: endpoint { |
|---|
| 743 | + remote-endpoint = <&codec_2>; |
|---|
| 744 | + ... |
|---|
| 745 | + playback = <&ssiu32 &ssi3>; |
|---|
| 746 | + }; |
|---|
| 747 | + }; |
|---|
| 748 | + rsnd_port3: port@3 { |
|---|
| 749 | + rsnd_ep3: endpoint { |
|---|
| 750 | + remote-endpoint = <&codec_3>; |
|---|
| 751 | + ... |
|---|
| 752 | + playback = <&ssiu33 &ssi3>; |
|---|
| 753 | + }; |
|---|
| 754 | + }; |
|---|
| 755 | + }; |
|---|
| 756 | +}; |
|---|
| 666 | 757 | |
|---|
| 667 | 758 | ============================================= |
|---|
| 668 | 759 | Example: simple sound card for Multi channel |
|---|