190e8e50fSKuninori MorimotoRenesas R-Car sound 290e8e50fSKuninori Morimoto 3f1511a14SKuninori Morimoto============================================= 4f1511a14SKuninori Morimoto* Modules 5f1511a14SKuninori Morimoto============================================= 6f1511a14SKuninori Morimoto 7b0a858a4SBiju DasRenesas R-Car and RZ/G sound is constructed from below modules 8f1511a14SKuninori Morimoto(for Gen2 or later) 9f1511a14SKuninori Morimoto 10f1511a14SKuninori Morimoto SCU : Sampling Rate Converter Unit 11f1511a14SKuninori Morimoto - SRC : Sampling Rate Converter 12f1511a14SKuninori Morimoto - CMD 13f1511a14SKuninori Morimoto - CTU : Channel Transfer Unit 14f1511a14SKuninori Morimoto - MIX : Mixer 15f1511a14SKuninori Morimoto - DVC : Digital Volume and Mute Function 16f1511a14SKuninori Morimoto SSIU : Serial Sound Interface Unit 17f1511a14SKuninori Morimoto SSI : Serial Sound Interface 18f1511a14SKuninori Morimoto 19f1511a14SKuninori MorimotoSee detail of each module's channels, connection, limitation on datasheet 20f1511a14SKuninori Morimoto 21f1511a14SKuninori Morimoto============================================= 22f1511a14SKuninori Morimoto* Multi channel 23f1511a14SKuninori Morimoto============================================= 24f1511a14SKuninori Morimoto 25f1511a14SKuninori MorimotoMulti channel is supported by Multi-SSI, or TDM-SSI. 26f1511a14SKuninori Morimoto 27f1511a14SKuninori Morimoto Multi-SSI : 6ch case, you can use stereo x 3 SSI 28f1511a14SKuninori Morimoto TDM-SSI : 6ch case, you can use TDM 29f1511a14SKuninori Morimoto 30f1511a14SKuninori Morimoto============================================= 31f1511a14SKuninori Morimoto* Enable/Disable each modules 32f1511a14SKuninori Morimoto============================================= 33f1511a14SKuninori Morimoto 34f1511a14SKuninori MorimotoSee datasheet to check SRC/CTU/MIX/DVC connect-limitation. 35f1511a14SKuninori MorimotoDT controls enabling/disabling module. 36f1511a14SKuninori Morimoto${LINUX}/arch/arm/boot/dts/r8a7790-lager.dts can be good example. 37f1511a14SKuninori MorimotoThis is example of 38f1511a14SKuninori Morimoto 39f1511a14SKuninori MorimotoPlayback: [MEM] -> [SRC2] -> [DVC0] -> [SSIU0/SSI0] -> [codec] 40f1511a14SKuninori MorimotoCapture: [MEM] <- [DVC1] <- [SRC3] <- [SSIU1/SSI1] <- [codec] 41f1511a14SKuninori Morimoto 42*bd7ff187SKuninori Morimotosee "Example: simple sound card" 43f1511a14SKuninori Morimoto 44f1511a14SKuninori MorimotoYou can use below. 45f1511a14SKuninori Morimoto${LINUX}/arch/arm/boot/dts/r8a7790.dts can be good example. 46f1511a14SKuninori Morimoto 47f1511a14SKuninori Morimoto &src0 &ctu00 &mix0 &dvc0 &ssi0 48f1511a14SKuninori Morimoto &src1 &ctu01 &mix1 &dvc1 &ssi1 49f1511a14SKuninori Morimoto &src2 &ctu02 &ssi2 50f1511a14SKuninori Morimoto &src3 &ctu03 &ssi3 51f1511a14SKuninori Morimoto &src4 &ssi4 52f1511a14SKuninori Morimoto &src5 &ctu10 &ssi5 53f1511a14SKuninori Morimoto &src6 &ctu11 &ssi6 54f1511a14SKuninori Morimoto &src7 &ctu12 &ssi7 55f1511a14SKuninori Morimoto &src8 &ctu13 &ssi8 56f1511a14SKuninori Morimoto &src9 &ssi9 57f1511a14SKuninori Morimoto 58f1511a14SKuninori Morimoto============================================= 59f1511a14SKuninori Morimoto* SRC (Sampling Rate Converter) 60f1511a14SKuninori Morimoto============================================= 61f1511a14SKuninori Morimoto 62f1511a14SKuninori Morimoto [xx]Hz [yy]Hz 63f1511a14SKuninori Morimoto ------> [SRC] ------> 64f1511a14SKuninori Morimoto 65f1511a14SKuninori MorimotoSRC can convert [xx]Hz to [yy]Hz. Then, it has below 2 modes 66f1511a14SKuninori Morimoto 67f1511a14SKuninori Morimoto Asynchronous mode: input data / output data are based on different clocks. 68f1511a14SKuninori Morimoto you can use this mode on Playback / Capture 69f1511a14SKuninori Morimoto Synchronous mode: input data / output data are based on same clocks. 70f1511a14SKuninori Morimoto This mode will be used if system doesn't have its input clock, 71f1511a14SKuninori Morimoto for example digital TV case. 72f1511a14SKuninori Morimoto you can use this mode on Playback 73f1511a14SKuninori Morimoto 74f1511a14SKuninori Morimoto------------------ 75f1511a14SKuninori Morimoto** Asynchronous mode 76f1511a14SKuninori Morimoto------------------ 77f1511a14SKuninori Morimoto 78*bd7ff187SKuninori MorimotoYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. 79*bd7ff187SKuninori Morimotosee "Example: simple sound card for Asynchronous mode" 80f1511a14SKuninori Morimoto 81f1511a14SKuninori Morimoto------------------ 82f1511a14SKuninori Morimoto** Synchronous mode 83f1511a14SKuninori Morimoto------------------ 84f1511a14SKuninori Morimoto 85f1511a14SKuninori Morimoto > amixer set "SRC Out Rate" on 86f1511a14SKuninori Morimoto > aplay xxxx.wav 87f1511a14SKuninori Morimoto > amixer set "SRC Out Rate" 48000 88f1511a14SKuninori Morimoto > amixer set "SRC Out Rate" 44100 89f1511a14SKuninori Morimoto 90f1511a14SKuninori Morimoto============================================= 91f1511a14SKuninori Morimoto* CTU (Channel Transfer Unit) 92f1511a14SKuninori Morimoto============================================= 93f1511a14SKuninori Morimoto 94f1511a14SKuninori Morimoto [xx]ch [yy]ch 95f1511a14SKuninori Morimoto ------> [CTU] --------> 96f1511a14SKuninori Morimoto 97f1511a14SKuninori MorimotoCTU can convert [xx]ch to [yy]ch, or exchange outputed channel. 98f1511a14SKuninori MorimotoCTU conversion needs matrix settings. 99f1511a14SKuninori MorimotoFor more detail information, see below 100f1511a14SKuninori Morimoto 101f1511a14SKuninori Morimoto Renesas R-Car datasheet 102f1511a14SKuninori Morimoto - Sampling Rate Converter Unit (SCU) 103f1511a14SKuninori Morimoto - SCU Operation 104f1511a14SKuninori Morimoto - CMD Block 105f1511a14SKuninori Morimoto - Functional Blocks in CMD 106f1511a14SKuninori Morimoto 107f1511a14SKuninori Morimoto Renesas R-Car datasheet 108f1511a14SKuninori Morimoto - Sampling Rate Converter Unit (SCU) 109f1511a14SKuninori Morimoto - Register Description 110f1511a14SKuninori Morimoto - CTUn Scale Value exx Register (CTUn_SVxxR) 111f1511a14SKuninori Morimoto 112f1511a14SKuninori Morimoto ${LINUX}/sound/soc/sh/rcar/ctu.c 113f1511a14SKuninori Morimoto - comment of header 114f1511a14SKuninori Morimoto 115*bd7ff187SKuninori MorimotoYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. 116*bd7ff187SKuninori Morimotosee "Example: simple sound card for channel convert" 117f1511a14SKuninori Morimoto 118f1511a14SKuninori MorimotoEx) Exchange output channel 119f1511a14SKuninori Morimoto Input -> Output 120f1511a14SKuninori Morimoto 1ch -> 0ch 121f1511a14SKuninori Morimoto 0ch -> 1ch 122f1511a14SKuninori Morimoto 123f1511a14SKuninori Morimoto example of using matrix 124f1511a14SKuninori Morimoto output 0ch = (input 0ch x 0) + (input 1ch x 1) 125f1511a14SKuninori Morimoto output 1ch = (input 0ch x 1) + (input 1ch x 0) 126f1511a14SKuninori Morimoto 127f1511a14SKuninori Morimoto amixer set "CTU Reset" on 128f1511a14SKuninori Morimoto amixer set "CTU Pass" 9,10 129f1511a14SKuninori Morimoto amixer set "CTU SV0" 0,4194304 130f1511a14SKuninori Morimoto amixer set "CTU SV1" 4194304,0 131f1511a14SKuninori Morimoto 132f1511a14SKuninori Morimoto example of changing connection 133f1511a14SKuninori Morimoto amixer set "CTU Reset" on 134f1511a14SKuninori Morimoto amixer set "CTU Pass" 2,1 135f1511a14SKuninori Morimoto 136f1511a14SKuninori Morimoto============================================= 137f1511a14SKuninori Morimoto* MIX (Mixer) 138f1511a14SKuninori Morimoto============================================= 139f1511a14SKuninori Morimoto 140f1511a14SKuninori MorimotoMIX merges 2 sounds path. You can see 2 sound interface on system, 141f1511a14SKuninori Morimotoand these sounds will be merged by MIX. 142f1511a14SKuninori Morimoto 143f1511a14SKuninori Morimoto aplay -D plughw:0,0 xxxx.wav & 144f1511a14SKuninori Morimoto aplay -D plughw:0,1 yyyy.wav 145f1511a14SKuninori Morimoto 146*bd7ff187SKuninori MorimotoYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. 147f1511a14SKuninori MorimotoEx) 148f1511a14SKuninori Morimoto [MEM] -> [SRC1] -> [CTU02] -+-> [MIX0] -> [DVC0] -> [SSI0] 149f1511a14SKuninori Morimoto | 150f1511a14SKuninori Morimoto [MEM] -> [SRC2] -> [CTU03] -+ 151f1511a14SKuninori Morimoto 152*bd7ff187SKuninori Morimotosee "Example: simple sound card for MIXer" 153f1511a14SKuninori Morimoto 154f1511a14SKuninori Morimoto============================================= 155f1511a14SKuninori Morimoto* DVC (Digital Volume and Mute Function) 156f1511a14SKuninori Morimoto============================================= 157f1511a14SKuninori Morimoto 158f1511a14SKuninori MorimotoDVC controls Playback/Capture volume. 159f1511a14SKuninori Morimoto 160f1511a14SKuninori MorimotoPlayback Volume 161f1511a14SKuninori Morimoto amixer set "DVC Out" 100% 162f1511a14SKuninori Morimoto 163f1511a14SKuninori MorimotoCapture Volume 164f1511a14SKuninori Morimoto amixer set "DVC In" 100% 165f1511a14SKuninori Morimoto 166f1511a14SKuninori MorimotoPlayback Mute 167f1511a14SKuninori Morimoto amixer set "DVC Out Mute" on 168f1511a14SKuninori Morimoto 169f1511a14SKuninori MorimotoCapture Mute 170f1511a14SKuninori Morimoto amixer set "DVC In Mute" on 171f1511a14SKuninori Morimoto 172f1511a14SKuninori MorimotoVolume Ramp 173f1511a14SKuninori Morimoto amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 174f1511a14SKuninori Morimoto amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 175f1511a14SKuninori Morimoto amixer set "DVC Out Ramp" on 176f1511a14SKuninori Morimoto aplay xxx.wav & 177f1511a14SKuninori Morimoto amixer set "DVC Out" 80% // Volume Down 178f1511a14SKuninori Morimoto amixer set "DVC Out" 100% // Volume Up 179f1511a14SKuninori Morimoto 180f1511a14SKuninori Morimoto============================================= 181f1511a14SKuninori Morimoto* SSIU (Serial Sound Interface Unit) 182f1511a14SKuninori Morimoto============================================= 183f1511a14SKuninori Morimoto 184f1511a14SKuninori MorimotoThere is no DT settings for SSIU, because SSIU will be automatically 185f1511a14SKuninori Morimotoselected via SSI. 186f1511a14SKuninori MorimotoSSIU can avoid some under/over run error, because it has some buffer. 187f1511a14SKuninori MorimotoBut you can't use it if SSI was PIO mode. 188f1511a14SKuninori MorimotoIn DMA mode, you can select not to use SSIU by using "no-busif" on DT. 189f1511a14SKuninori Morimoto 190f1511a14SKuninori Morimoto &ssi0 { 191f1511a14SKuninori Morimoto no-busif; 192f1511a14SKuninori Morimoto }; 193f1511a14SKuninori Morimoto 194f1511a14SKuninori Morimoto============================================= 195f1511a14SKuninori Morimoto* SSI (Serial Sound Interface) 196f1511a14SKuninori Morimoto============================================= 197f1511a14SKuninori Morimoto 198f1511a14SKuninori Morimoto** PIO mode 199f1511a14SKuninori Morimoto 200f1511a14SKuninori MorimotoYou can use PIO mode which is for connection check by using. 201f1511a14SKuninori MorimotoNote: The system will drop non-SSI modules in PIO mode 202f1511a14SKuninori Morimotoeven though if DT is selecting other modules. 203f1511a14SKuninori Morimoto 204f1511a14SKuninori Morimoto &ssi0 { 205f1511a14SKuninori Morimoto pio-transfer 206f1511a14SKuninori Morimoto }; 207f1511a14SKuninori Morimoto 208f1511a14SKuninori Morimoto** DMA mode without SSIU 209f1511a14SKuninori Morimoto 210f1511a14SKuninori MorimotoYou can use DMA without SSIU. 211f1511a14SKuninori MorimotoNote: under/over run, or noise are likely to occur 212f1511a14SKuninori Morimoto 213f1511a14SKuninori Morimoto &ssi0 { 214f1511a14SKuninori Morimoto no-busif; 215f1511a14SKuninori Morimoto }; 216f1511a14SKuninori Morimoto 217f1511a14SKuninori Morimoto** PIN sharing 218f1511a14SKuninori Morimoto 219f1511a14SKuninori MorimotoEach SSI can share WS pin. It is based on platform. 220f1511a14SKuninori MorimotoThis is example if SSI1 want to share WS pin with SSI0 221f1511a14SKuninori Morimoto 222f1511a14SKuninori Morimoto &ssi1 { 223f1511a14SKuninori Morimoto shared-pin; 224f1511a14SKuninori Morimoto }; 225f1511a14SKuninori Morimoto 226f1511a14SKuninori Morimoto** Multi-SSI 227f1511a14SKuninori Morimoto 228f1511a14SKuninori MorimotoYou can use Multi-SSI. 229f1511a14SKuninori MorimotoThis is example of SSI0/SSI1/SSI2 (= for 6ch) 230f1511a14SKuninori Morimoto 231*bd7ff187SKuninori Morimotosee "Example: simple sound card for Multi channel" 232f1511a14SKuninori Morimoto 233f1511a14SKuninori Morimoto** TDM-SSI 234f1511a14SKuninori Morimoto 235f1511a14SKuninori MorimotoYou can use TDM with SSI. 236f1511a14SKuninori MorimotoThis is example of TDM 6ch. 237f1511a14SKuninori MorimotoDriver can automatically switches TDM <-> stereo mode in this case. 238f1511a14SKuninori Morimoto 239*bd7ff187SKuninori Morimotosee "Example: simple sound card for TDM" 240f1511a14SKuninori Morimoto 241f1511a14SKuninori Morimoto============================================= 24290e8e50fSKuninori MorimotoRequired properties: 243f1511a14SKuninori Morimoto============================================= 244f1511a14SKuninori Morimoto 24556ba98acSGeert Uytterhoeven- compatible : "renesas,rcar_sound-<soctype>", fallbacks 24656ba98acSGeert Uytterhoeven "renesas,rcar_sound-gen1" if generation1, and 247b0a858a4SBiju Das "renesas,rcar_sound-gen2" if generation2 (or RZ/G1) 2486fbf9d8eSFabrizio Castro "renesas,rcar_sound-gen3" if generation3 (or RZ/G2) 24956ba98acSGeert Uytterhoeven Examples with soctypes are: 250b0a858a4SBiju Das - "renesas,rcar_sound-r8a7743" (RZ/G1M) 251765f50d4SBiju Das - "renesas,rcar_sound-r8a7744" (RZ/G1N) 252b0a858a4SBiju Das - "renesas,rcar_sound-r8a7745" (RZ/G1E) 2536fbf9d8eSFabrizio Castro - "renesas,rcar_sound-r8a774a1" (RZ/G2M) 2547667f716SGeert Uytterhoeven - "renesas,rcar_sound-r8a7778" (R-Car M1A) 2554eb404d0SSimon Horman - "renesas,rcar_sound-r8a7779" (R-Car H1) 25656ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7790" (R-Car H2) 25756ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7791" (R-Car M2-W) 2584eb404d0SSimon Horman - "renesas,rcar_sound-r8a7793" (R-Car M2-N) 2594eb404d0SSimon Horman - "renesas,rcar_sound-r8a7794" (R-Car E2) 260ac37a45bSKuninori Morimoto - "renesas,rcar_sound-r8a7795" (R-Car H3) 261da263026SGeert Uytterhoeven - "renesas,rcar_sound-r8a7796" (R-Car M3-W) 262150a6dc8SHiroyuki Yokoyama - "renesas,rcar_sound-r8a77965" (R-Car M3-N) 263e058a403SHiroyuki Yokoyama - "renesas,rcar_sound-r8a77990" (R-Car E3) 26490e8e50fSKuninori Morimoto- reg : Should contain the register physical address. 26590e8e50fSKuninori Morimoto required register is 26690e8e50fSKuninori Morimoto SRU/ADG/SSI if generation1 26790e8e50fSKuninori Morimoto SRU/ADG/SSIU/SSI if generation2 2688bab0dd5SKuninori Morimoto- rcar_sound,ssi : Should contain SSI feature. 2698bab0dd5SKuninori Morimoto The number of SSI subnode should be same as HW. 2708bab0dd5SKuninori Morimoto see below for detail. 2718bab0dd5SKuninori Morimoto- rcar_sound,src : Should contain SRC feature. 2728bab0dd5SKuninori Morimoto The number of SRC subnode should be same as HW. 2738bab0dd5SKuninori Morimoto see below for detail. 2749269e3c3SKuninori Morimoto- rcar_sound,ctu : Should contain CTU feature. 2759269e3c3SKuninori Morimoto The number of CTU subnode should be same as HW. 2769269e3c3SKuninori Morimoto see below for detail. 27770fb1052SKuninori Morimoto- rcar_sound,mix : Should contain MIX feature. 27870fb1052SKuninori Morimoto The number of MIX subnode should be same as HW. 27970fb1052SKuninori Morimoto see below for detail. 28034cb6123SKuninori Morimoto- rcar_sound,dvc : Should contain DVC feature. 28134cb6123SKuninori Morimoto The number of DVC subnode should be same as HW. 28234cb6123SKuninori Morimoto see below for detail. 2838bab0dd5SKuninori Morimoto- rcar_sound,dai : DAI contents. 2848bab0dd5SKuninori Morimoto The number of DAI subnode should be same as HW. 2858bab0dd5SKuninori Morimoto see below for detail. 286e3d2cec8SKuninori Morimoto- #sound-dai-cells : it must be 0 if your system is using single DAI 287e3d2cec8SKuninori Morimoto it must be 1 if your system is using multi DAI 2885b3889f8SKuninori Morimoto- clocks : References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks. 2895b3889f8SKuninori Morimoto- clock-names : List of necessary clock names. 2905b3889f8SKuninori Morimoto "ssi-all", "ssi.X", "src.X", "mix.X", "ctu.X", 2915b3889f8SKuninori Morimoto "dvc.X", "clk_a", "clk_b", "clk_c", "clk_i" 292209c0907SKuninori Morimoto 293209c0907SKuninori MorimotoOptional properties: 2942a46db4aSKuninori Morimoto- #clock-cells : it must be 0 if your system has audio_clkout 2952a46db4aSKuninori Morimoto it must be 1 if your system has audio_clkout0/1/2/3 2962a46db4aSKuninori Morimoto- clock-frequency : for all audio_clkout0/1/2/3 2977dc20319SKuninori Morimoto- clkout-lr-asynchronous : boolean property. it indicates that audio_clkoutn 2987dc20319SKuninori Morimoto is asynchronizes with lr-clock. 2995f440c48SGeert Uytterhoeven- resets : References to SSI resets. 3005f440c48SGeert Uytterhoeven- reset-names : List of valid reset names. 3015f440c48SGeert Uytterhoeven "ssi-all", "ssi.X" 30290e8e50fSKuninori Morimoto 30390e8e50fSKuninori MorimotoSSI subnode properties: 30490e8e50fSKuninori Morimoto- interrupts : Should contain SSI interrupt for PIO transfer 30590e8e50fSKuninori Morimoto- shared-pin : if shared clock pin 306199e7688SKuninori Morimoto- pio-transfer : use PIO transfer mode 307d9288d0bSKuninori Morimoto- no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case 308e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 309e80a2fb1SKuninori Morimoto- dma-names : SSI case "rx" (=playback), "tx" (=capture) 310e80a2fb1SKuninori Morimoto SSIU case "rxu" (=playback), "txu" (=capture) 31190e8e50fSKuninori Morimoto 3128bab0dd5SKuninori MorimotoSRC subnode properties: 313e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 314e80a2fb1SKuninori Morimoto- dma-names : "rx" (=playback), "tx" (=capture) 315e80a2fb1SKuninori Morimoto 316e80a2fb1SKuninori MorimotoDVC subnode properties: 317e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 318e80a2fb1SKuninori Morimoto- dma-names : "tx" (=playback/capture) 3198bab0dd5SKuninori Morimoto 32090e8e50fSKuninori MorimotoDAI subnode properties: 32190e8e50fSKuninori Morimoto- playback : list of playback modules 32290e8e50fSKuninori Morimoto- capture : list of capture modules 32390e8e50fSKuninori Morimoto 324f1511a14SKuninori Morimoto 325f1511a14SKuninori Morimoto============================================= 32690e8e50fSKuninori MorimotoExample: 327f1511a14SKuninori Morimoto============================================= 32890e8e50fSKuninori Morimoto 329596f74ecSGeert Uytterhoevenrcar_sound: sound@ec500000 { 33090e8e50fSKuninori Morimoto #sound-dai-cells = <1>; 33156ba98acSGeert Uytterhoeven compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; 33290e8e50fSKuninori Morimoto reg = <0 0xec500000 0 0x1000>, /* SCU */ 33390e8e50fSKuninori Morimoto <0 0xec5a0000 0 0x100>, /* ADG */ 33490e8e50fSKuninori Morimoto <0 0xec540000 0 0x1000>, /* SSIU */ 335d3b1c0baSKuninori Morimoto <0 0xec541000 0 0x1280>, /* SSI */ 336d3b1c0baSKuninori Morimoto <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 337d3b1c0baSKuninori Morimoto reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 33890e8e50fSKuninori Morimoto 339bb02714fSKuninori Morimoto clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, 340bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, 341bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, 342bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, 343bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, 344bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, 345bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, 346bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, 347bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 348bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 349bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 350bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 351bb02714fSKuninori Morimoto <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 352bb02714fSKuninori Morimoto clock-names = "ssi-all", 353bb02714fSKuninori Morimoto "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 354bb02714fSKuninori Morimoto "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 355bb02714fSKuninori Morimoto "src.9", "src.8", "src.7", "src.6", "src.5", 356bb02714fSKuninori Morimoto "src.4", "src.3", "src.2", "src.1", "src.0", 357bb02714fSKuninori Morimoto "dvc.0", "dvc.1", 358bb02714fSKuninori Morimoto "clk_a", "clk_b", "clk_c", "clk_i"; 359bb02714fSKuninori Morimoto 36034cb6123SKuninori Morimoto rcar_sound,dvc { 361a5702e1cSGeert Uytterhoeven dvc0: dvc-0 { 362e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbc>; 363e80a2fb1SKuninori Morimoto dma-names = "tx"; 364e80a2fb1SKuninori Morimoto }; 365a5702e1cSGeert Uytterhoeven dvc1: dvc-1 { 366e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbe>; 367e80a2fb1SKuninori Morimoto dma-names = "tx"; 368e80a2fb1SKuninori Morimoto }; 36934cb6123SKuninori Morimoto }; 37034cb6123SKuninori Morimoto 37170fb1052SKuninori Morimoto rcar_sound,mix { 372a5702e1cSGeert Uytterhoeven mix0: mix-0 { }; 373a5702e1cSGeert Uytterhoeven mix1: mix-1 { }; 37470fb1052SKuninori Morimoto }; 37570fb1052SKuninori Morimoto 3769269e3c3SKuninori Morimoto rcar_sound,ctu { 377a5702e1cSGeert Uytterhoeven ctu00: ctu-0 { }; 378a5702e1cSGeert Uytterhoeven ctu01: ctu-1 { }; 379a5702e1cSGeert Uytterhoeven ctu02: ctu-2 { }; 380a5702e1cSGeert Uytterhoeven ctu03: ctu-3 { }; 381a5702e1cSGeert Uytterhoeven ctu10: ctu-4 { }; 382a5702e1cSGeert Uytterhoeven ctu11: ctu-5 { }; 383a5702e1cSGeert Uytterhoeven ctu12: ctu-6 { }; 384a5702e1cSGeert Uytterhoeven ctu13: ctu-7 { }; 3859269e3c3SKuninori Morimoto }; 3869269e3c3SKuninori Morimoto 38790e8e50fSKuninori Morimoto rcar_sound,src { 388a5702e1cSGeert Uytterhoeven src0: src-0 { 3895cf4f686SKuninori Morimoto interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 390e80a2fb1SKuninori Morimoto dmas = <&audma0 0x85>, <&audma1 0x9a>; 391e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 3925cf4f686SKuninori Morimoto }; 393a5702e1cSGeert Uytterhoeven src1: src-1 { 3945cf4f686SKuninori Morimoto interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; 395e80a2fb1SKuninori Morimoto dmas = <&audma0 0x87>, <&audma1 0x9c>; 396e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 3975cf4f686SKuninori Morimoto }; 398a5702e1cSGeert Uytterhoeven src2: src-2 { 3995cf4f686SKuninori Morimoto interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; 400e80a2fb1SKuninori Morimoto dmas = <&audma0 0x89>, <&audma1 0x9e>; 401e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4025cf4f686SKuninori Morimoto }; 403a5702e1cSGeert Uytterhoeven src3: src-3 { 4045cf4f686SKuninori Morimoto interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; 405e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8b>, <&audma1 0xa0>; 406e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4075cf4f686SKuninori Morimoto }; 408a5702e1cSGeert Uytterhoeven src4: src-4 { 4095cf4f686SKuninori Morimoto interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; 410e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8d>, <&audma1 0xb0>; 411e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4125cf4f686SKuninori Morimoto }; 413a5702e1cSGeert Uytterhoeven src5: src-5 { 4145cf4f686SKuninori Morimoto interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; 415e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8f>, <&audma1 0xb2>; 416e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4175cf4f686SKuninori Morimoto }; 418a5702e1cSGeert Uytterhoeven src6: src-6 { 4195cf4f686SKuninori Morimoto interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; 420e80a2fb1SKuninori Morimoto dmas = <&audma0 0x91>, <&audma1 0xb4>; 421e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4225cf4f686SKuninori Morimoto }; 423a5702e1cSGeert Uytterhoeven src7: src-7 { 4245cf4f686SKuninori Morimoto interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; 425e80a2fb1SKuninori Morimoto dmas = <&audma0 0x93>, <&audma1 0xb6>; 426e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4275cf4f686SKuninori Morimoto }; 428a5702e1cSGeert Uytterhoeven src8: src-8 { 4295cf4f686SKuninori Morimoto interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; 430e80a2fb1SKuninori Morimoto dmas = <&audma0 0x95>, <&audma1 0xb8>; 431e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4325cf4f686SKuninori Morimoto }; 433a5702e1cSGeert Uytterhoeven src9: src-9 { 4345cf4f686SKuninori Morimoto interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; 435e80a2fb1SKuninori Morimoto dmas = <&audma0 0x97>, <&audma1 0xba>; 436e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4375cf4f686SKuninori Morimoto }; 43890e8e50fSKuninori Morimoto }; 43990e8e50fSKuninori Morimoto 44090e8e50fSKuninori Morimoto rcar_sound,ssi { 441a5702e1cSGeert Uytterhoeven ssi0: ssi-0 { 44290e8e50fSKuninori Morimoto interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 443e80a2fb1SKuninori Morimoto dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 444e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 44590e8e50fSKuninori Morimoto }; 446a5702e1cSGeert Uytterhoeven ssi1: ssi-1 { 44790e8e50fSKuninori Morimoto interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 448e80a2fb1SKuninori Morimoto dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 449e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 45090e8e50fSKuninori Morimoto }; 451a5702e1cSGeert Uytterhoeven ssi2: ssi-2 { 45290e8e50fSKuninori Morimoto interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; 453e80a2fb1SKuninori Morimoto dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 454e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 45590e8e50fSKuninori Morimoto }; 456a5702e1cSGeert Uytterhoeven ssi3: ssi-3 { 45790e8e50fSKuninori Morimoto interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; 458e80a2fb1SKuninori Morimoto dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 459e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 46090e8e50fSKuninori Morimoto }; 461a5702e1cSGeert Uytterhoeven ssi4: ssi-4 { 46290e8e50fSKuninori Morimoto interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; 463e80a2fb1SKuninori Morimoto dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 464e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 46590e8e50fSKuninori Morimoto }; 466a5702e1cSGeert Uytterhoeven ssi5: ssi-5 { 46790e8e50fSKuninori Morimoto interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; 468e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 469e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 47090e8e50fSKuninori Morimoto }; 471a5702e1cSGeert Uytterhoeven ssi6: ssi-6 { 47290e8e50fSKuninori Morimoto interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; 473e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 474e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 47590e8e50fSKuninori Morimoto }; 476a5702e1cSGeert Uytterhoeven ssi7: ssi-7 { 47790e8e50fSKuninori Morimoto interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; 478e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 479e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 48090e8e50fSKuninori Morimoto }; 481a5702e1cSGeert Uytterhoeven ssi8: ssi-8 { 48290e8e50fSKuninori Morimoto interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 483e80a2fb1SKuninori Morimoto dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 484e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 48590e8e50fSKuninori Morimoto }; 486a5702e1cSGeert Uytterhoeven ssi9: ssi-9 { 48790e8e50fSKuninori Morimoto interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 488e80a2fb1SKuninori Morimoto dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 489e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 49090e8e50fSKuninori Morimoto }; 49190e8e50fSKuninori Morimoto }; 49290e8e50fSKuninori Morimoto 49390e8e50fSKuninori Morimoto rcar_sound,dai { 49490e8e50fSKuninori Morimoto dai0 { 49590e8e50fSKuninori Morimoto playback = <&ssi5 &src5>; 49690e8e50fSKuninori Morimoto capture = <&ssi6>; 49790e8e50fSKuninori Morimoto }; 49890e8e50fSKuninori Morimoto dai1 { 49990e8e50fSKuninori Morimoto playback = <&ssi3>; 50090e8e50fSKuninori Morimoto }; 50190e8e50fSKuninori Morimoto dai2 { 50290e8e50fSKuninori Morimoto capture = <&ssi4>; 50390e8e50fSKuninori Morimoto }; 50490e8e50fSKuninori Morimoto dai3 { 50590e8e50fSKuninori Morimoto playback = <&ssi7>; 50690e8e50fSKuninori Morimoto }; 50790e8e50fSKuninori Morimoto dai4 { 50890e8e50fSKuninori Morimoto capture = <&ssi8>; 50990e8e50fSKuninori Morimoto }; 51090e8e50fSKuninori Morimoto }; 51190e8e50fSKuninori Morimoto}; 512f3f17d32SKuninori Morimoto 513f1511a14SKuninori Morimoto============================================= 514f3f17d32SKuninori MorimotoExample: simple sound card 515f1511a14SKuninori Morimoto============================================= 516f3f17d32SKuninori Morimoto 517f3f17d32SKuninori Morimoto rsnd_ak4643: sound { 518f3f17d32SKuninori Morimoto compatible = "simple-audio-card"; 519f3f17d32SKuninori Morimoto 520f3f17d32SKuninori Morimoto simple-audio-card,format = "left_j"; 521f3f17d32SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 522f3f17d32SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 523f3f17d32SKuninori Morimoto 524f3f17d32SKuninori Morimoto sndcpu: simple-audio-card,cpu { 525f3f17d32SKuninori Morimoto sound-dai = <&rcar_sound>; 526f3f17d32SKuninori Morimoto }; 527f3f17d32SKuninori Morimoto 528f3f17d32SKuninori Morimoto sndcodec: simple-audio-card,codec { 529f3f17d32SKuninori Morimoto sound-dai = <&ak4643>; 530f3f17d32SKuninori Morimoto clocks = <&audio_clock>; 531f3f17d32SKuninori Morimoto }; 532f3f17d32SKuninori Morimoto }; 533f3f17d32SKuninori Morimoto 534f3f17d32SKuninori Morimoto&rcar_sound { 535f3f17d32SKuninori Morimoto pinctrl-0 = <&sound_pins &sound_clk_pins>; 536f3f17d32SKuninori Morimoto pinctrl-names = "default"; 537f3f17d32SKuninori Morimoto 538f3f17d32SKuninori Morimoto /* Single DAI */ 539f3f17d32SKuninori Morimoto #sound-dai-cells = <0>; 540f3f17d32SKuninori Morimoto 541f3f17d32SKuninori Morimoto 542f3f17d32SKuninori Morimoto rcar_sound,dai { 543f3f17d32SKuninori Morimoto dai0 { 544f3f17d32SKuninori Morimoto playback = <&ssi0 &src2 &dvc0>; 545f3f17d32SKuninori Morimoto capture = <&ssi1 &src3 &dvc1>; 546f3f17d32SKuninori Morimoto }; 547f3f17d32SKuninori Morimoto }; 548f3f17d32SKuninori Morimoto}; 549f3f17d32SKuninori Morimoto 550f3f17d32SKuninori Morimoto&ssi1 { 551f3f17d32SKuninori Morimoto shared-pin; 552f3f17d32SKuninori Morimoto}; 55344bf5361SKuninori Morimoto 554f1511a14SKuninori Morimoto============================================= 555*bd7ff187SKuninori MorimotoExample: simple sound card for Asynchronous mode 556*bd7ff187SKuninori Morimoto============================================= 557*bd7ff187SKuninori Morimoto 558*bd7ff187SKuninori Morimotosound { 559*bd7ff187SKuninori Morimoto compatible = "simple-scu-audio-card"; 560*bd7ff187SKuninori Morimoto ... 561*bd7ff187SKuninori Morimoto /* 562*bd7ff187SKuninori Morimoto * SRC Asynchronous mode setting 563*bd7ff187SKuninori Morimoto * Playback: 564*bd7ff187SKuninori Morimoto * All input data will be converted to 48kHz 565*bd7ff187SKuninori Morimoto * Capture: 566*bd7ff187SKuninori Morimoto * Inputed 48kHz data will be converted to 567*bd7ff187SKuninori Morimoto * system specified Hz 568*bd7ff187SKuninori Morimoto */ 569*bd7ff187SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 570*bd7ff187SKuninori Morimoto ... 571*bd7ff187SKuninori Morimoto simple-audio-card,cpu { 572*bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound>; 573*bd7ff187SKuninori Morimoto }; 574*bd7ff187SKuninori Morimoto simple-audio-card,codec { 575*bd7ff187SKuninori Morimoto ... 576*bd7ff187SKuninori Morimoto }; 577*bd7ff187SKuninori Morimoto}; 578*bd7ff187SKuninori Morimoto 579*bd7ff187SKuninori Morimoto============================================= 580*bd7ff187SKuninori MorimotoExample: simple sound card for channel convert 581*bd7ff187SKuninori Morimoto============================================= 582*bd7ff187SKuninori Morimoto 583*bd7ff187SKuninori Morimotosound { 584*bd7ff187SKuninori Morimoto compatible = "simple-scu-audio-card"; 585*bd7ff187SKuninori Morimoto ... 586*bd7ff187SKuninori Morimoto /* 587*bd7ff187SKuninori Morimoto * CTU setting 588*bd7ff187SKuninori Morimoto * All input data will be converted to 2ch 589*bd7ff187SKuninori Morimoto * as output data 590*bd7ff187SKuninori Morimoto */ 591*bd7ff187SKuninori Morimoto simple-audio-card,convert-channels = <2>; 592*bd7ff187SKuninori Morimoto ... 593*bd7ff187SKuninori Morimoto simple-audio-card,cpu { 594*bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound>; 595*bd7ff187SKuninori Morimoto }; 596*bd7ff187SKuninori Morimoto simple-audio-card,codec { 597*bd7ff187SKuninori Morimoto ... 598*bd7ff187SKuninori Morimoto }; 599*bd7ff187SKuninori Morimoto}; 600*bd7ff187SKuninori Morimoto 601*bd7ff187SKuninori Morimoto============================================= 602*bd7ff187SKuninori MorimotoExample: simple sound card for MIXer 603*bd7ff187SKuninori Morimoto============================================= 604*bd7ff187SKuninori Morimoto 605*bd7ff187SKuninori Morimotosound { 606*bd7ff187SKuninori Morimoto compatible = "simple-scu-audio-card"; 607*bd7ff187SKuninori Morimoto ... 608*bd7ff187SKuninori Morimoto simple-audio-card,cpu@0 { 609*bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound 0>; 610*bd7ff187SKuninori Morimoto }; 611*bd7ff187SKuninori Morimoto simple-audio-card,cpu@1 { 612*bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound 1>; 613*bd7ff187SKuninori Morimoto }; 614*bd7ff187SKuninori Morimoto simple-audio-card,codec { 615*bd7ff187SKuninori Morimoto ... 616*bd7ff187SKuninori Morimoto }; 617*bd7ff187SKuninori Morimoto}; 618*bd7ff187SKuninori Morimoto 619*bd7ff187SKuninori Morimoto&rcar_sound { 620*bd7ff187SKuninori Morimoto ... 621*bd7ff187SKuninori Morimoto rcar_sound,dai { 622*bd7ff187SKuninori Morimoto dai0 { 623*bd7ff187SKuninori Morimoto playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 624*bd7ff187SKuninori Morimoto }; 625*bd7ff187SKuninori Morimoto dai1 { 626*bd7ff187SKuninori Morimoto playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 627*bd7ff187SKuninori Morimoto }; 628*bd7ff187SKuninori Morimoto }; 629*bd7ff187SKuninori Morimoto}; 630*bd7ff187SKuninori Morimoto 631*bd7ff187SKuninori Morimoto============================================= 63244bf5361SKuninori MorimotoExample: simple sound card for TDM 633f1511a14SKuninori Morimoto============================================= 63444bf5361SKuninori Morimoto 63544bf5361SKuninori Morimotorsnd_tdm: sound { 63644bf5361SKuninori Morimoto compatible = "simple-audio-card"; 63744bf5361SKuninori Morimoto 63844bf5361SKuninori Morimoto simple-audio-card,format = "left_j"; 63944bf5361SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 64044bf5361SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 64144bf5361SKuninori Morimoto 64244bf5361SKuninori Morimoto sndcpu: simple-audio-card,cpu { 64344bf5361SKuninori Morimoto sound-dai = <&rcar_sound>; 64444bf5361SKuninori Morimoto dai-tdm-slot-num = <6>; 64544bf5361SKuninori Morimoto }; 64644bf5361SKuninori Morimoto 64744bf5361SKuninori Morimoto sndcodec: simple-audio-card,codec { 64844bf5361SKuninori Morimoto sound-dai = <&xxx>; 64944bf5361SKuninori Morimoto }; 65044bf5361SKuninori Morimoto}; 651b4c83b17SKuninori Morimoto 652f1511a14SKuninori Morimoto============================================= 653b4c83b17SKuninori MorimotoExample: simple sound card for Multi channel 654f1511a14SKuninori Morimoto============================================= 655b4c83b17SKuninori Morimoto 656b4c83b17SKuninori Morimoto&rcar_sound { 657b4c83b17SKuninori Morimoto pinctrl-0 = <&sound_pins &sound_clk_pins>; 658b4c83b17SKuninori Morimoto pinctrl-names = "default"; 659b4c83b17SKuninori Morimoto 660b4c83b17SKuninori Morimoto /* Single DAI */ 661b4c83b17SKuninori Morimoto #sound-dai-cells = <0>; 662b4c83b17SKuninori Morimoto 663b4c83b17SKuninori Morimoto 664b4c83b17SKuninori Morimoto rcar_sound,dai { 665b4c83b17SKuninori Morimoto dai0 { 666b4c83b17SKuninori Morimoto playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>; 667b4c83b17SKuninori Morimoto }; 668b4c83b17SKuninori Morimoto }; 669b4c83b17SKuninori Morimoto}; 670