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 42bd7ff187SKuninori 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 78bd7ff187SKuninori MorimotoYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. 79bd7ff187SKuninori 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 115bd7ff187SKuninori MorimotoYou need to use "simple-scu-audio-card" or "audio-graph-scu-card" for it. 116bd7ff187SKuninori 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 146bd7ff187SKuninori 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 152bd7ff187SKuninori 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 MorimotoSSIU can avoid some under/over run error, because it has some buffer. 185f1511a14SKuninori MorimotoBut you can't use it if SSI was PIO mode. 186da48a6ebSKuninori MorimotoIn DMA mode, you can select not to use SSIU by using "no-busif" via SSI. 187f1511a14SKuninori Morimoto 188da48a6ebSKuninori MorimotoSSIU handles BUSIF which will be used for TDM Split mode. 189da48a6ebSKuninori MorimotoThis driver is assuming that audio-graph card will be used. 190f1511a14SKuninori Morimoto 191cf704dc8SKuninori MorimotoTDM Split mode merges 4 sounds. You can see 4 sound interface on system, 192cf704dc8SKuninori Morimotoand these sounds will be merged SSIU/SSI. 193cf704dc8SKuninori Morimoto 194cf704dc8SKuninori Morimoto aplay -D plughw:0,0 xxxx.wav & 195cf704dc8SKuninori Morimoto aplay -D plughw:0,1 xxxx.wav & 196cf704dc8SKuninori Morimoto aplay -D plughw:0,2 xxxx.wav & 197cf704dc8SKuninori Morimoto aplay -D plughw:0,3 xxxx.wav 198cf704dc8SKuninori Morimoto 199cf704dc8SKuninori Morimoto 2ch 8ch 200cf704dc8SKuninori Morimoto [MEM] -> [SSIU 30] -+-> [SSIU 3] --> [Codec] 201cf704dc8SKuninori Morimoto 2ch | 202cf704dc8SKuninori Morimoto [MEM] -> [SSIU 31] -+ 203cf704dc8SKuninori Morimoto 2ch | 204cf704dc8SKuninori Morimoto [MEM] -> [SSIU 32] -+ 205cf704dc8SKuninori Morimoto 2ch | 206cf704dc8SKuninori Morimoto [MEM] -> [SSIU 33] -+ 207cf704dc8SKuninori Morimoto 208cf704dc8SKuninori Morimotosee "Example: simple sound card for TDM Split" 209cf704dc8SKuninori Morimoto 210f1511a14SKuninori Morimoto============================================= 211f1511a14SKuninori Morimoto* SSI (Serial Sound Interface) 212f1511a14SKuninori Morimoto============================================= 213f1511a14SKuninori Morimoto 214f1511a14SKuninori Morimoto** PIO mode 215f1511a14SKuninori Morimoto 216f1511a14SKuninori MorimotoYou can use PIO mode which is for connection check by using. 217f1511a14SKuninori MorimotoNote: The system will drop non-SSI modules in PIO mode 218f1511a14SKuninori Morimotoeven though if DT is selecting other modules. 219f1511a14SKuninori Morimoto 220f1511a14SKuninori Morimoto &ssi0 { 221f1511a14SKuninori Morimoto pio-transfer 222f1511a14SKuninori Morimoto }; 223f1511a14SKuninori Morimoto 224f1511a14SKuninori Morimoto** DMA mode without SSIU 225f1511a14SKuninori Morimoto 226f1511a14SKuninori MorimotoYou can use DMA without SSIU. 227f1511a14SKuninori MorimotoNote: under/over run, or noise are likely to occur 228f1511a14SKuninori Morimoto 229f1511a14SKuninori Morimoto &ssi0 { 230f1511a14SKuninori Morimoto no-busif; 231f1511a14SKuninori Morimoto }; 232f1511a14SKuninori Morimoto 233f1511a14SKuninori Morimoto** PIN sharing 234f1511a14SKuninori Morimoto 235f1511a14SKuninori MorimotoEach SSI can share WS pin. It is based on platform. 236f1511a14SKuninori MorimotoThis is example if SSI1 want to share WS pin with SSI0 237f1511a14SKuninori Morimoto 238f1511a14SKuninori Morimoto &ssi1 { 239f1511a14SKuninori Morimoto shared-pin; 240f1511a14SKuninori Morimoto }; 241f1511a14SKuninori Morimoto 242f1511a14SKuninori Morimoto** Multi-SSI 243f1511a14SKuninori Morimoto 244f1511a14SKuninori MorimotoYou can use Multi-SSI. 245f1511a14SKuninori MorimotoThis is example of SSI0/SSI1/SSI2 (= for 6ch) 246f1511a14SKuninori Morimoto 247bd7ff187SKuninori Morimotosee "Example: simple sound card for Multi channel" 248f1511a14SKuninori Morimoto 249f1511a14SKuninori Morimoto** TDM-SSI 250f1511a14SKuninori Morimoto 251f1511a14SKuninori MorimotoYou can use TDM with SSI. 252f1511a14SKuninori MorimotoThis is example of TDM 6ch. 253f1511a14SKuninori MorimotoDriver can automatically switches TDM <-> stereo mode in this case. 254f1511a14SKuninori Morimoto 255bd7ff187SKuninori Morimotosee "Example: simple sound card for TDM" 256f1511a14SKuninori Morimoto 257f1511a14SKuninori Morimoto============================================= 25890e8e50fSKuninori MorimotoRequired properties: 259f1511a14SKuninori Morimoto============================================= 260f1511a14SKuninori Morimoto 26156ba98acSGeert Uytterhoeven- compatible : "renesas,rcar_sound-<soctype>", fallbacks 26256ba98acSGeert Uytterhoeven "renesas,rcar_sound-gen1" if generation1, and 263b0a858a4SBiju Das "renesas,rcar_sound-gen2" if generation2 (or RZ/G1) 2646fbf9d8eSFabrizio Castro "renesas,rcar_sound-gen3" if generation3 (or RZ/G2) 26556ba98acSGeert Uytterhoeven Examples with soctypes are: 266b0a858a4SBiju Das - "renesas,rcar_sound-r8a7743" (RZ/G1M) 267765f50d4SBiju Das - "renesas,rcar_sound-r8a7744" (RZ/G1N) 268b0a858a4SBiju Das - "renesas,rcar_sound-r8a7745" (RZ/G1E) 2696fbf9d8eSFabrizio Castro - "renesas,rcar_sound-r8a774a1" (RZ/G2M) 2707667f716SGeert Uytterhoeven - "renesas,rcar_sound-r8a7778" (R-Car M1A) 2714eb404d0SSimon Horman - "renesas,rcar_sound-r8a7779" (R-Car H1) 27256ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7790" (R-Car H2) 27356ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7791" (R-Car M2-W) 2744eb404d0SSimon Horman - "renesas,rcar_sound-r8a7793" (R-Car M2-N) 2754eb404d0SSimon Horman - "renesas,rcar_sound-r8a7794" (R-Car E2) 276ac37a45bSKuninori Morimoto - "renesas,rcar_sound-r8a7795" (R-Car H3) 277da263026SGeert Uytterhoeven - "renesas,rcar_sound-r8a7796" (R-Car M3-W) 278150a6dc8SHiroyuki Yokoyama - "renesas,rcar_sound-r8a77965" (R-Car M3-N) 279e058a403SHiroyuki Yokoyama - "renesas,rcar_sound-r8a77990" (R-Car E3) 28090e8e50fSKuninori Morimoto- reg : Should contain the register physical address. 28190e8e50fSKuninori Morimoto required register is 28290e8e50fSKuninori Morimoto SRU/ADG/SSI if generation1 28390e8e50fSKuninori Morimoto SRU/ADG/SSIU/SSI if generation2 2848bab0dd5SKuninori Morimoto- rcar_sound,ssi : Should contain SSI feature. 2858bab0dd5SKuninori Morimoto The number of SSI subnode should be same as HW. 2868bab0dd5SKuninori Morimoto see below for detail. 287da48a6ebSKuninori Morimoto- rcar_sound,ssiu : Should contain SSIU feature. 288da48a6ebSKuninori Morimoto The number of SSIU subnode should be same as HW. 289da48a6ebSKuninori Morimoto see below for detail. 2908bab0dd5SKuninori Morimoto- rcar_sound,src : Should contain SRC feature. 2918bab0dd5SKuninori Morimoto The number of SRC subnode should be same as HW. 2928bab0dd5SKuninori Morimoto see below for detail. 2939269e3c3SKuninori Morimoto- rcar_sound,ctu : Should contain CTU feature. 2949269e3c3SKuninori Morimoto The number of CTU subnode should be same as HW. 2959269e3c3SKuninori Morimoto see below for detail. 29670fb1052SKuninori Morimoto- rcar_sound,mix : Should contain MIX feature. 29770fb1052SKuninori Morimoto The number of MIX subnode should be same as HW. 29870fb1052SKuninori Morimoto see below for detail. 29934cb6123SKuninori Morimoto- rcar_sound,dvc : Should contain DVC feature. 30034cb6123SKuninori Morimoto The number of DVC subnode should be same as HW. 30134cb6123SKuninori Morimoto see below for detail. 3028bab0dd5SKuninori Morimoto- rcar_sound,dai : DAI contents. 3038bab0dd5SKuninori Morimoto The number of DAI subnode should be same as HW. 3048bab0dd5SKuninori Morimoto see below for detail. 305e3d2cec8SKuninori Morimoto- #sound-dai-cells : it must be 0 if your system is using single DAI 306e3d2cec8SKuninori Morimoto it must be 1 if your system is using multi DAI 3075b3889f8SKuninori Morimoto- clocks : References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks. 3085b3889f8SKuninori Morimoto- clock-names : List of necessary clock names. 3095b3889f8SKuninori Morimoto "ssi-all", "ssi.X", "src.X", "mix.X", "ctu.X", 3105b3889f8SKuninori Morimoto "dvc.X", "clk_a", "clk_b", "clk_c", "clk_i" 311209c0907SKuninori Morimoto 312209c0907SKuninori MorimotoOptional properties: 3132a46db4aSKuninori Morimoto- #clock-cells : it must be 0 if your system has audio_clkout 3142a46db4aSKuninori Morimoto it must be 1 if your system has audio_clkout0/1/2/3 3152a46db4aSKuninori Morimoto- clock-frequency : for all audio_clkout0/1/2/3 3167dc20319SKuninori Morimoto- clkout-lr-asynchronous : boolean property. it indicates that audio_clkoutn 3177dc20319SKuninori Morimoto is asynchronizes with lr-clock. 3185f440c48SGeert Uytterhoeven- resets : References to SSI resets. 3195f440c48SGeert Uytterhoeven- reset-names : List of valid reset names. 3205f440c48SGeert Uytterhoeven "ssi-all", "ssi.X" 32190e8e50fSKuninori Morimoto 32290e8e50fSKuninori MorimotoSSI subnode properties: 32390e8e50fSKuninori Morimoto- interrupts : Should contain SSI interrupt for PIO transfer 32490e8e50fSKuninori Morimoto- shared-pin : if shared clock pin 325199e7688SKuninori Morimoto- pio-transfer : use PIO transfer mode 326d9288d0bSKuninori Morimoto- no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case 327e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 328e80a2fb1SKuninori Morimoto- dma-names : SSI case "rx" (=playback), "tx" (=capture) 329e80a2fb1SKuninori Morimoto SSIU case "rxu" (=playback), "txu" (=capture) 33090e8e50fSKuninori Morimoto 3318bab0dd5SKuninori MorimotoSRC subnode properties: 332e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 333e80a2fb1SKuninori Morimoto- dma-names : "rx" (=playback), "tx" (=capture) 334e80a2fb1SKuninori Morimoto 335e80a2fb1SKuninori MorimotoDVC subnode properties: 336e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 337e80a2fb1SKuninori Morimoto- dma-names : "tx" (=playback/capture) 3388bab0dd5SKuninori Morimoto 33990e8e50fSKuninori MorimotoDAI subnode properties: 34090e8e50fSKuninori Morimoto- playback : list of playback modules 34190e8e50fSKuninori Morimoto- capture : list of capture modules 34290e8e50fSKuninori Morimoto 343f1511a14SKuninori Morimoto 344f1511a14SKuninori Morimoto============================================= 34590e8e50fSKuninori MorimotoExample: 346f1511a14SKuninori Morimoto============================================= 34790e8e50fSKuninori Morimoto 348596f74ecSGeert Uytterhoevenrcar_sound: sound@ec500000 { 34990e8e50fSKuninori Morimoto #sound-dai-cells = <1>; 35056ba98acSGeert Uytterhoeven compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; 35190e8e50fSKuninori Morimoto reg = <0 0xec500000 0 0x1000>, /* SCU */ 35290e8e50fSKuninori Morimoto <0 0xec5a0000 0 0x100>, /* ADG */ 35390e8e50fSKuninori Morimoto <0 0xec540000 0 0x1000>, /* SSIU */ 354d3b1c0baSKuninori Morimoto <0 0xec541000 0 0x1280>, /* SSI */ 355d3b1c0baSKuninori Morimoto <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 356d3b1c0baSKuninori Morimoto reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 35790e8e50fSKuninori Morimoto 358bb02714fSKuninori Morimoto clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, 359bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, 360bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, 361bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, 362bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, 363bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, 364bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, 365bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, 366bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 367bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 368bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 369bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 370bb02714fSKuninori Morimoto <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 371bb02714fSKuninori Morimoto clock-names = "ssi-all", 372bb02714fSKuninori Morimoto "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 373bb02714fSKuninori Morimoto "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 374bb02714fSKuninori Morimoto "src.9", "src.8", "src.7", "src.6", "src.5", 375bb02714fSKuninori Morimoto "src.4", "src.3", "src.2", "src.1", "src.0", 376bb02714fSKuninori Morimoto "dvc.0", "dvc.1", 377bb02714fSKuninori Morimoto "clk_a", "clk_b", "clk_c", "clk_i"; 378bb02714fSKuninori Morimoto 37934cb6123SKuninori Morimoto rcar_sound,dvc { 380a5702e1cSGeert Uytterhoeven dvc0: dvc-0 { 381e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbc>; 382e80a2fb1SKuninori Morimoto dma-names = "tx"; 383e80a2fb1SKuninori Morimoto }; 384a5702e1cSGeert Uytterhoeven dvc1: dvc-1 { 385e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbe>; 386e80a2fb1SKuninori Morimoto dma-names = "tx"; 387e80a2fb1SKuninori Morimoto }; 38834cb6123SKuninori Morimoto }; 38934cb6123SKuninori Morimoto 39070fb1052SKuninori Morimoto rcar_sound,mix { 391a5702e1cSGeert Uytterhoeven mix0: mix-0 { }; 392a5702e1cSGeert Uytterhoeven mix1: mix-1 { }; 39370fb1052SKuninori Morimoto }; 39470fb1052SKuninori Morimoto 3959269e3c3SKuninori Morimoto rcar_sound,ctu { 396a5702e1cSGeert Uytterhoeven ctu00: ctu-0 { }; 397a5702e1cSGeert Uytterhoeven ctu01: ctu-1 { }; 398a5702e1cSGeert Uytterhoeven ctu02: ctu-2 { }; 399a5702e1cSGeert Uytterhoeven ctu03: ctu-3 { }; 400a5702e1cSGeert Uytterhoeven ctu10: ctu-4 { }; 401a5702e1cSGeert Uytterhoeven ctu11: ctu-5 { }; 402a5702e1cSGeert Uytterhoeven ctu12: ctu-6 { }; 403a5702e1cSGeert Uytterhoeven ctu13: ctu-7 { }; 4049269e3c3SKuninori Morimoto }; 4059269e3c3SKuninori Morimoto 40690e8e50fSKuninori Morimoto rcar_sound,src { 407a5702e1cSGeert Uytterhoeven src0: src-0 { 4085cf4f686SKuninori Morimoto interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 409e80a2fb1SKuninori Morimoto dmas = <&audma0 0x85>, <&audma1 0x9a>; 410e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4115cf4f686SKuninori Morimoto }; 412a5702e1cSGeert Uytterhoeven src1: src-1 { 4135cf4f686SKuninori Morimoto interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; 414e80a2fb1SKuninori Morimoto dmas = <&audma0 0x87>, <&audma1 0x9c>; 415e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4165cf4f686SKuninori Morimoto }; 417a5702e1cSGeert Uytterhoeven src2: src-2 { 4185cf4f686SKuninori Morimoto interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; 419e80a2fb1SKuninori Morimoto dmas = <&audma0 0x89>, <&audma1 0x9e>; 420e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4215cf4f686SKuninori Morimoto }; 422a5702e1cSGeert Uytterhoeven src3: src-3 { 4235cf4f686SKuninori Morimoto interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; 424e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8b>, <&audma1 0xa0>; 425e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4265cf4f686SKuninori Morimoto }; 427a5702e1cSGeert Uytterhoeven src4: src-4 { 4285cf4f686SKuninori Morimoto interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; 429e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8d>, <&audma1 0xb0>; 430e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4315cf4f686SKuninori Morimoto }; 432a5702e1cSGeert Uytterhoeven src5: src-5 { 4335cf4f686SKuninori Morimoto interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; 434e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8f>, <&audma1 0xb2>; 435e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4365cf4f686SKuninori Morimoto }; 437a5702e1cSGeert Uytterhoeven src6: src-6 { 4385cf4f686SKuninori Morimoto interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; 439e80a2fb1SKuninori Morimoto dmas = <&audma0 0x91>, <&audma1 0xb4>; 440e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4415cf4f686SKuninori Morimoto }; 442a5702e1cSGeert Uytterhoeven src7: src-7 { 4435cf4f686SKuninori Morimoto interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; 444e80a2fb1SKuninori Morimoto dmas = <&audma0 0x93>, <&audma1 0xb6>; 445e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4465cf4f686SKuninori Morimoto }; 447a5702e1cSGeert Uytterhoeven src8: src-8 { 4485cf4f686SKuninori Morimoto interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; 449e80a2fb1SKuninori Morimoto dmas = <&audma0 0x95>, <&audma1 0xb8>; 450e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4515cf4f686SKuninori Morimoto }; 452a5702e1cSGeert Uytterhoeven src9: src-9 { 4535cf4f686SKuninori Morimoto interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; 454e80a2fb1SKuninori Morimoto dmas = <&audma0 0x97>, <&audma1 0xba>; 455e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4565cf4f686SKuninori Morimoto }; 45790e8e50fSKuninori Morimoto }; 45890e8e50fSKuninori Morimoto 459da48a6ebSKuninori Morimoto rcar_sound,ssiu { 460da48a6ebSKuninori Morimoto ssiu00: ssiu-0 { 461da48a6ebSKuninori Morimoto dmas = <&audma0 0x15>, <&audma1 0x16>; 462da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 463da48a6ebSKuninori Morimoto }; 464da48a6ebSKuninori Morimoto ssiu01: ssiu-1 { 465da48a6ebSKuninori Morimoto dmas = <&audma0 0x35>, <&audma1 0x36>; 466da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 467da48a6ebSKuninori Morimoto }; 468da48a6ebSKuninori Morimoto 469da48a6ebSKuninori Morimoto ... 470da48a6ebSKuninori Morimoto 471da48a6ebSKuninori Morimoto ssiu95: ssiu-49 { 472da48a6ebSKuninori Morimoto dmas = <&audma0 0xA5>, <&audma1 0xA6>; 473da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 474da48a6ebSKuninori Morimoto }; 475da48a6ebSKuninori Morimoto ssiu96: ssiu-50 { 476da48a6ebSKuninori Morimoto dmas = <&audma0 0xA7>, <&audma1 0xA8>; 477da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 478da48a6ebSKuninori Morimoto }; 479da48a6ebSKuninori Morimoto ssiu97: ssiu-51 { 480da48a6ebSKuninori Morimoto dmas = <&audma0 0xA9>, <&audma1 0xAA>; 481da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 482da48a6ebSKuninori Morimoto }; 483da48a6ebSKuninori Morimoto }; 484da48a6ebSKuninori Morimoto 48590e8e50fSKuninori Morimoto rcar_sound,ssi { 486a5702e1cSGeert Uytterhoeven ssi0: ssi-0 { 48790e8e50fSKuninori Morimoto interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 488da48a6ebSKuninori Morimoto dmas = <&audma0 0x01>, <&audma1 0x02>; 489da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 49090e8e50fSKuninori Morimoto }; 491a5702e1cSGeert Uytterhoeven ssi1: ssi-1 { 49290e8e50fSKuninori Morimoto interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 493da48a6ebSKuninori Morimoto dmas = <&audma0 0x03>, <&audma1 0x04>; 494da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 49590e8e50fSKuninori Morimoto }; 496da48a6ebSKuninori Morimoto 497da48a6ebSKuninori Morimoto ... 498da48a6ebSKuninori Morimoto 499a5702e1cSGeert Uytterhoeven ssi8: ssi-8 { 50090e8e50fSKuninori Morimoto interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 501da48a6ebSKuninori Morimoto dmas = <&audma0 0x11>, <&audma1 0x12>; 502da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 50390e8e50fSKuninori Morimoto }; 504a5702e1cSGeert Uytterhoeven ssi9: ssi-9 { 50590e8e50fSKuninori Morimoto interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 506da48a6ebSKuninori Morimoto dmas = <&audma0 0x13>, <&audma1 0x14>; 507da48a6ebSKuninori Morimoto dma-names = "rx", "tx"; 50890e8e50fSKuninori Morimoto }; 50990e8e50fSKuninori Morimoto }; 51090e8e50fSKuninori Morimoto 51190e8e50fSKuninori Morimoto rcar_sound,dai { 51290e8e50fSKuninori Morimoto dai0 { 51390e8e50fSKuninori Morimoto playback = <&ssi5 &src5>; 51490e8e50fSKuninori Morimoto capture = <&ssi6>; 51590e8e50fSKuninori Morimoto }; 51690e8e50fSKuninori Morimoto dai1 { 51790e8e50fSKuninori Morimoto playback = <&ssi3>; 51890e8e50fSKuninori Morimoto }; 51990e8e50fSKuninori Morimoto dai2 { 52090e8e50fSKuninori Morimoto capture = <&ssi4>; 52190e8e50fSKuninori Morimoto }; 52290e8e50fSKuninori Morimoto dai3 { 52390e8e50fSKuninori Morimoto playback = <&ssi7>; 52490e8e50fSKuninori Morimoto }; 52590e8e50fSKuninori Morimoto dai4 { 52690e8e50fSKuninori Morimoto capture = <&ssi8>; 52790e8e50fSKuninori Morimoto }; 52890e8e50fSKuninori Morimoto }; 52990e8e50fSKuninori Morimoto}; 530f3f17d32SKuninori Morimoto 531f1511a14SKuninori Morimoto============================================= 532f3f17d32SKuninori MorimotoExample: simple sound card 533f1511a14SKuninori Morimoto============================================= 534f3f17d32SKuninori Morimoto 535f3f17d32SKuninori Morimoto rsnd_ak4643: sound { 536f3f17d32SKuninori Morimoto compatible = "simple-audio-card"; 537f3f17d32SKuninori Morimoto 538f3f17d32SKuninori Morimoto simple-audio-card,format = "left_j"; 539f3f17d32SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 540f3f17d32SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 541f3f17d32SKuninori Morimoto 542f3f17d32SKuninori Morimoto sndcpu: simple-audio-card,cpu { 543f3f17d32SKuninori Morimoto sound-dai = <&rcar_sound>; 544f3f17d32SKuninori Morimoto }; 545f3f17d32SKuninori Morimoto 546f3f17d32SKuninori Morimoto sndcodec: simple-audio-card,codec { 547f3f17d32SKuninori Morimoto sound-dai = <&ak4643>; 548f3f17d32SKuninori Morimoto clocks = <&audio_clock>; 549f3f17d32SKuninori Morimoto }; 550f3f17d32SKuninori Morimoto }; 551f3f17d32SKuninori Morimoto 552f3f17d32SKuninori Morimoto&rcar_sound { 553f3f17d32SKuninori Morimoto pinctrl-0 = <&sound_pins &sound_clk_pins>; 554f3f17d32SKuninori Morimoto pinctrl-names = "default"; 555f3f17d32SKuninori Morimoto 556f3f17d32SKuninori Morimoto /* Single DAI */ 557f3f17d32SKuninori Morimoto #sound-dai-cells = <0>; 558f3f17d32SKuninori Morimoto 559f3f17d32SKuninori Morimoto 560f3f17d32SKuninori Morimoto rcar_sound,dai { 561f3f17d32SKuninori Morimoto dai0 { 562f3f17d32SKuninori Morimoto playback = <&ssi0 &src2 &dvc0>; 563f3f17d32SKuninori Morimoto capture = <&ssi1 &src3 &dvc1>; 564f3f17d32SKuninori Morimoto }; 565f3f17d32SKuninori Morimoto }; 566f3f17d32SKuninori Morimoto}; 567f3f17d32SKuninori Morimoto 568f3f17d32SKuninori Morimoto&ssi1 { 569f3f17d32SKuninori Morimoto shared-pin; 570f3f17d32SKuninori Morimoto}; 57144bf5361SKuninori Morimoto 572f1511a14SKuninori Morimoto============================================= 573bd7ff187SKuninori MorimotoExample: simple sound card for Asynchronous mode 574bd7ff187SKuninori Morimoto============================================= 575bd7ff187SKuninori Morimoto 576bd7ff187SKuninori Morimotosound { 577bd7ff187SKuninori Morimoto compatible = "simple-scu-audio-card"; 578bd7ff187SKuninori Morimoto ... 579bd7ff187SKuninori Morimoto /* 580bd7ff187SKuninori Morimoto * SRC Asynchronous mode setting 581bd7ff187SKuninori Morimoto * Playback: 582bd7ff187SKuninori Morimoto * All input data will be converted to 48kHz 583bd7ff187SKuninori Morimoto * Capture: 584bd7ff187SKuninori Morimoto * Inputed 48kHz data will be converted to 585bd7ff187SKuninori Morimoto * system specified Hz 586bd7ff187SKuninori Morimoto */ 587bd7ff187SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 588bd7ff187SKuninori Morimoto ... 589bd7ff187SKuninori Morimoto simple-audio-card,cpu { 590bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound>; 591bd7ff187SKuninori Morimoto }; 592bd7ff187SKuninori Morimoto simple-audio-card,codec { 593bd7ff187SKuninori Morimoto ... 594bd7ff187SKuninori Morimoto }; 595bd7ff187SKuninori Morimoto}; 596bd7ff187SKuninori Morimoto 597bd7ff187SKuninori Morimoto============================================= 598bd7ff187SKuninori MorimotoExample: simple sound card for channel convert 599bd7ff187SKuninori Morimoto============================================= 600bd7ff187SKuninori Morimoto 601bd7ff187SKuninori Morimotosound { 602bd7ff187SKuninori Morimoto compatible = "simple-scu-audio-card"; 603bd7ff187SKuninori Morimoto ... 604bd7ff187SKuninori Morimoto /* 605bd7ff187SKuninori Morimoto * CTU setting 606bd7ff187SKuninori Morimoto * All input data will be converted to 2ch 607bd7ff187SKuninori Morimoto * as output data 608bd7ff187SKuninori Morimoto */ 609bd7ff187SKuninori Morimoto simple-audio-card,convert-channels = <2>; 610bd7ff187SKuninori Morimoto ... 611bd7ff187SKuninori Morimoto simple-audio-card,cpu { 612bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound>; 613bd7ff187SKuninori Morimoto }; 614bd7ff187SKuninori Morimoto simple-audio-card,codec { 615bd7ff187SKuninori Morimoto ... 616bd7ff187SKuninori Morimoto }; 617bd7ff187SKuninori Morimoto}; 618bd7ff187SKuninori Morimoto 619bd7ff187SKuninori Morimoto============================================= 620bd7ff187SKuninori MorimotoExample: simple sound card for MIXer 621bd7ff187SKuninori Morimoto============================================= 622bd7ff187SKuninori Morimoto 623bd7ff187SKuninori Morimotosound { 624bd7ff187SKuninori Morimoto compatible = "simple-scu-audio-card"; 625bd7ff187SKuninori Morimoto ... 626bd7ff187SKuninori Morimoto simple-audio-card,cpu@0 { 627bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound 0>; 628bd7ff187SKuninori Morimoto }; 629bd7ff187SKuninori Morimoto simple-audio-card,cpu@1 { 630bd7ff187SKuninori Morimoto sound-dai = <&rcar_sound 1>; 631bd7ff187SKuninori Morimoto }; 632bd7ff187SKuninori Morimoto simple-audio-card,codec { 633bd7ff187SKuninori Morimoto ... 634bd7ff187SKuninori Morimoto }; 635bd7ff187SKuninori Morimoto}; 636bd7ff187SKuninori Morimoto 637bd7ff187SKuninori Morimoto&rcar_sound { 638bd7ff187SKuninori Morimoto ... 639bd7ff187SKuninori Morimoto rcar_sound,dai { 640bd7ff187SKuninori Morimoto dai0 { 641bd7ff187SKuninori Morimoto playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 642bd7ff187SKuninori Morimoto }; 643bd7ff187SKuninori Morimoto dai1 { 644bd7ff187SKuninori Morimoto playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 645bd7ff187SKuninori Morimoto }; 646bd7ff187SKuninori Morimoto }; 647bd7ff187SKuninori Morimoto}; 648bd7ff187SKuninori Morimoto 649bd7ff187SKuninori Morimoto============================================= 65044bf5361SKuninori MorimotoExample: simple sound card for TDM 651f1511a14SKuninori Morimoto============================================= 65244bf5361SKuninori Morimoto 65344bf5361SKuninori Morimotorsnd_tdm: sound { 65444bf5361SKuninori Morimoto compatible = "simple-audio-card"; 65544bf5361SKuninori Morimoto 65644bf5361SKuninori Morimoto simple-audio-card,format = "left_j"; 65744bf5361SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 65844bf5361SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 65944bf5361SKuninori Morimoto 66044bf5361SKuninori Morimoto sndcpu: simple-audio-card,cpu { 66144bf5361SKuninori Morimoto sound-dai = <&rcar_sound>; 66244bf5361SKuninori Morimoto dai-tdm-slot-num = <6>; 66344bf5361SKuninori Morimoto }; 66444bf5361SKuninori Morimoto 66544bf5361SKuninori Morimoto sndcodec: simple-audio-card,codec { 66644bf5361SKuninori Morimoto sound-dai = <&xxx>; 66744bf5361SKuninori Morimoto }; 66844bf5361SKuninori Morimoto}; 669b4c83b17SKuninori Morimoto 670f1511a14SKuninori Morimoto============================================= 671cf704dc8SKuninori MorimotoExample: simple sound card for TDM Split 672cf704dc8SKuninori Morimoto============================================= 673cf704dc8SKuninori Morimoto 674cf704dc8SKuninori Morimotosound_card: sound { 675cf704dc8SKuninori Morimoto compatible = "audio-graph-scu-card"; 676cf704dc8SKuninori Morimoto prefix = "xxxx"; 677cf704dc8SKuninori Morimoto routing = "xxxx Playback", "DAI0 Playback", 678cf704dc8SKuninori Morimoto "xxxx Playback", "DAI1 Playback", 679cf704dc8SKuninori Morimoto "xxxx Playback", "DAI2 Playback", 680cf704dc8SKuninori Morimoto "xxxx Playback", "DAI3 Playback"; 681cf704dc8SKuninori Morimoto convert-channels = <8>; /* TDM Split */ 682cf704dc8SKuninori Morimoto 683cf704dc8SKuninori Morimoto dais = <&rsnd_port0 /* playback ch1/ch2 */ 684cf704dc8SKuninori Morimoto &rsnd_port1 /* playback ch3/ch4 */ 685cf704dc8SKuninori Morimoto &rsnd_port2 /* playback ch5/ch6 */ 686cf704dc8SKuninori Morimoto &rsnd_port3 /* playback ch7/ch8 */ 687cf704dc8SKuninori Morimoto >; 688cf704dc8SKuninori Morimoto}; 689cf704dc8SKuninori Morimoto 690cf704dc8SKuninori Morimotoaudio-codec { 691cf704dc8SKuninori Morimoto ... 692cf704dc8SKuninori Morimoto port { 693cf704dc8SKuninori Morimoto codec_0: endpoint@1 { 694cf704dc8SKuninori Morimoto remote-endpoint = <&rsnd_ep0>; 695cf704dc8SKuninori Morimoto }; 696cf704dc8SKuninori Morimoto codec_1: endpoint@2 { 697cf704dc8SKuninori Morimoto remote-endpoint = <&rsnd_ep1>; 698cf704dc8SKuninori Morimoto }; 699cf704dc8SKuninori Morimoto codec_2: endpoint@3 { 700cf704dc8SKuninori Morimoto remote-endpoint = <&rsnd_ep2>; 701cf704dc8SKuninori Morimoto }; 702cf704dc8SKuninori Morimoto codec_3: endpoint@4 { 703cf704dc8SKuninori Morimoto remote-endpoint = <&rsnd_ep3>; 704cf704dc8SKuninori Morimoto }; 705cf704dc8SKuninori Morimoto }; 706cf704dc8SKuninori Morimoto}; 707cf704dc8SKuninori Morimoto 708cf704dc8SKuninori Morimoto&rcar_sound { 709cf704dc8SKuninori Morimoto ... 710cf704dc8SKuninori Morimoto ports { 711cf704dc8SKuninori Morimoto rsnd_port0: port@0 { 712cf704dc8SKuninori Morimoto rsnd_ep0: endpoint { 713cf704dc8SKuninori Morimoto remote-endpoint = <&codec_0>; 714cf704dc8SKuninori Morimoto ... 715cf704dc8SKuninori Morimoto playback = <&ssiu30 &ssi3>; 716cf704dc8SKuninori Morimoto }; 717cf704dc8SKuninori Morimoto }; 718cf704dc8SKuninori Morimoto rsnd_port1: port@1 { 719cf704dc8SKuninori Morimoto rsnd_ep1: endpoint { 720cf704dc8SKuninori Morimoto remote-endpoint = <&codec_1>; 721cf704dc8SKuninori Morimoto ... 722cf704dc8SKuninori Morimoto playback = <&ssiu31 &ssi3>; 723cf704dc8SKuninori Morimoto }; 724cf704dc8SKuninori Morimoto }; 725cf704dc8SKuninori Morimoto rsnd_port2: port@2 { 726cf704dc8SKuninori Morimoto rsnd_ep2: endpoint { 727cf704dc8SKuninori Morimoto remote-endpoint = <&codec_2>; 728cf704dc8SKuninori Morimoto ... 729cf704dc8SKuninori Morimoto playback = <&ssiu32 &ssi3>; 730cf704dc8SKuninori Morimoto }; 731cf704dc8SKuninori Morimoto }; 732cf704dc8SKuninori Morimoto rsnd_port3: port@3 { 733cf704dc8SKuninori Morimoto rsnd_ep3: endpoint { 734cf704dc8SKuninori Morimoto remote-endpoint = <&codec_3>; 735cf704dc8SKuninori Morimoto ... 736cf704dc8SKuninori Morimoto playback = <&ssiu33 &ssi3>; 737cf704dc8SKuninori Morimoto }; 738cf704dc8SKuninori Morimoto }; 739cf704dc8SKuninori Morimoto }; 740cf704dc8SKuninori Morimoto}; 741cf704dc8SKuninori Morimoto 742cf704dc8SKuninori Morimoto============================================= 743b4c83b17SKuninori MorimotoExample: simple sound card for Multi channel 744f1511a14SKuninori Morimoto============================================= 745b4c83b17SKuninori Morimoto 746b4c83b17SKuninori Morimoto&rcar_sound { 747b4c83b17SKuninori Morimoto pinctrl-0 = <&sound_pins &sound_clk_pins>; 748b4c83b17SKuninori Morimoto pinctrl-names = "default"; 749b4c83b17SKuninori Morimoto 750b4c83b17SKuninori Morimoto /* Single DAI */ 751b4c83b17SKuninori Morimoto #sound-dai-cells = <0>; 752b4c83b17SKuninori Morimoto 753b4c83b17SKuninori Morimoto 754b4c83b17SKuninori Morimoto rcar_sound,dai { 755b4c83b17SKuninori Morimoto dai0 { 756b4c83b17SKuninori Morimoto playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>; 757b4c83b17SKuninori Morimoto }; 758b4c83b17SKuninori Morimoto }; 759b4c83b17SKuninori Morimoto}; 760