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 42f1511a14SKuninori Morimoto &rcar_sound { 43f1511a14SKuninori Morimoto ... 44f1511a14SKuninori Morimoto rcar_sound,dai { 45f1511a14SKuninori Morimoto dai0 { 46f1511a14SKuninori Morimoto playback = <&ssi0 &src2 &dvc0>; 47f1511a14SKuninori Morimoto capture = <&ssi1 &src3 &dvc1>; 48f1511a14SKuninori Morimoto }; 49f1511a14SKuninori Morimoto }; 50f1511a14SKuninori Morimoto }; 51f1511a14SKuninori Morimoto 52f1511a14SKuninori MorimotoYou can use below. 53f1511a14SKuninori Morimoto${LINUX}/arch/arm/boot/dts/r8a7790.dts can be good example. 54f1511a14SKuninori Morimoto 55f1511a14SKuninori Morimoto &src0 &ctu00 &mix0 &dvc0 &ssi0 56f1511a14SKuninori Morimoto &src1 &ctu01 &mix1 &dvc1 &ssi1 57f1511a14SKuninori Morimoto &src2 &ctu02 &ssi2 58f1511a14SKuninori Morimoto &src3 &ctu03 &ssi3 59f1511a14SKuninori Morimoto &src4 &ssi4 60f1511a14SKuninori Morimoto &src5 &ctu10 &ssi5 61f1511a14SKuninori Morimoto &src6 &ctu11 &ssi6 62f1511a14SKuninori Morimoto &src7 &ctu12 &ssi7 63f1511a14SKuninori Morimoto &src8 &ctu13 &ssi8 64f1511a14SKuninori Morimoto &src9 &ssi9 65f1511a14SKuninori Morimoto 66f1511a14SKuninori Morimoto============================================= 67f1511a14SKuninori Morimoto* SRC (Sampling Rate Converter) 68f1511a14SKuninori Morimoto============================================= 69f1511a14SKuninori Morimoto 70f1511a14SKuninori Morimoto [xx]Hz [yy]Hz 71f1511a14SKuninori Morimoto ------> [SRC] ------> 72f1511a14SKuninori Morimoto 73f1511a14SKuninori MorimotoSRC can convert [xx]Hz to [yy]Hz. Then, it has below 2 modes 74f1511a14SKuninori Morimoto 75f1511a14SKuninori Morimoto Asynchronous mode: input data / output data are based on different clocks. 76f1511a14SKuninori Morimoto you can use this mode on Playback / Capture 77f1511a14SKuninori Morimoto Synchronous mode: input data / output data are based on same clocks. 78f1511a14SKuninori Morimoto This mode will be used if system doesn't have its input clock, 79f1511a14SKuninori Morimoto for example digital TV case. 80f1511a14SKuninori Morimoto you can use this mode on Playback 81f1511a14SKuninori Morimoto 82f1511a14SKuninori Morimoto------------------ 83f1511a14SKuninori Morimoto** Asynchronous mode 84f1511a14SKuninori Morimoto------------------ 85f1511a14SKuninori Morimoto 860378bb96SKuninori MorimotoYou need to use "simple-scu-audio-card" sound card for it. 87f1511a14SKuninori Morimotoexample) 88f1511a14SKuninori Morimoto 89f1511a14SKuninori Morimoto sound { 900378bb96SKuninori Morimoto compatible = "simple-scu-audio-card"; 91f1511a14SKuninori Morimoto ... 92f1511a14SKuninori Morimoto /* 93f1511a14SKuninori Morimoto * SRC Asynchronous mode setting 94f1511a14SKuninori Morimoto * Playback: 95f1511a14SKuninori Morimoto * All input data will be converted to 48kHz 96f1511a14SKuninori Morimoto * Capture: 97f1511a14SKuninori Morimoto * Inputed 48kHz data will be converted to 98f1511a14SKuninori Morimoto * system specified Hz 99f1511a14SKuninori Morimoto */ 1000378bb96SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 101f1511a14SKuninori Morimoto ... 1020378bb96SKuninori Morimoto simple-audio-card,cpu { 103f1511a14SKuninori Morimoto sound-dai = <&rcar_sound>; 104f1511a14SKuninori Morimoto }; 1050378bb96SKuninori Morimoto simple-audio-card,codec { 106f1511a14SKuninori Morimoto ... 107f1511a14SKuninori Morimoto }; 108f1511a14SKuninori Morimoto }; 109f1511a14SKuninori Morimoto 110f1511a14SKuninori Morimoto------------------ 111f1511a14SKuninori Morimoto** Synchronous mode 112f1511a14SKuninori Morimoto------------------ 113f1511a14SKuninori Morimoto 114f1511a14SKuninori Morimoto > amixer set "SRC Out Rate" on 115f1511a14SKuninori Morimoto > aplay xxxx.wav 116f1511a14SKuninori Morimoto > amixer set "SRC Out Rate" 48000 117f1511a14SKuninori Morimoto > amixer set "SRC Out Rate" 44100 118f1511a14SKuninori Morimoto 119f1511a14SKuninori Morimoto============================================= 120f1511a14SKuninori Morimoto* CTU (Channel Transfer Unit) 121f1511a14SKuninori Morimoto============================================= 122f1511a14SKuninori Morimoto 123f1511a14SKuninori Morimoto [xx]ch [yy]ch 124f1511a14SKuninori Morimoto ------> [CTU] --------> 125f1511a14SKuninori Morimoto 126f1511a14SKuninori MorimotoCTU can convert [xx]ch to [yy]ch, or exchange outputed channel. 127f1511a14SKuninori MorimotoCTU conversion needs matrix settings. 128f1511a14SKuninori MorimotoFor more detail information, see below 129f1511a14SKuninori Morimoto 130f1511a14SKuninori Morimoto Renesas R-Car datasheet 131f1511a14SKuninori Morimoto - Sampling Rate Converter Unit (SCU) 132f1511a14SKuninori Morimoto - SCU Operation 133f1511a14SKuninori Morimoto - CMD Block 134f1511a14SKuninori Morimoto - Functional Blocks in CMD 135f1511a14SKuninori Morimoto 136f1511a14SKuninori Morimoto Renesas R-Car datasheet 137f1511a14SKuninori Morimoto - Sampling Rate Converter Unit (SCU) 138f1511a14SKuninori Morimoto - Register Description 139f1511a14SKuninori Morimoto - CTUn Scale Value exx Register (CTUn_SVxxR) 140f1511a14SKuninori Morimoto 141f1511a14SKuninori Morimoto ${LINUX}/sound/soc/sh/rcar/ctu.c 142f1511a14SKuninori Morimoto - comment of header 143f1511a14SKuninori Morimoto 1440378bb96SKuninori MorimotoYou need to use "simple-scu-audio-card" sound card for it. 145f1511a14SKuninori Morimotoexample) 146f1511a14SKuninori Morimoto 147f1511a14SKuninori Morimoto sound { 1480378bb96SKuninori Morimoto compatible = "simple-scu-audio-card"; 149f1511a14SKuninori Morimoto ... 150f1511a14SKuninori Morimoto /* 151f1511a14SKuninori Morimoto * CTU setting 152f1511a14SKuninori Morimoto * All input data will be converted to 2ch 153f1511a14SKuninori Morimoto * as output data 154f1511a14SKuninori Morimoto */ 1550378bb96SKuninori Morimoto simple-audio-card,convert-channels = <2>; 156f1511a14SKuninori Morimoto ... 1570378bb96SKuninori Morimoto simple-audio-card,cpu { 158f1511a14SKuninori Morimoto sound-dai = <&rcar_sound>; 159f1511a14SKuninori Morimoto }; 1600378bb96SKuninori Morimoto simple-audio-card,codec { 161f1511a14SKuninori Morimoto ... 162f1511a14SKuninori Morimoto }; 163f1511a14SKuninori Morimoto }; 164f1511a14SKuninori Morimoto 165f1511a14SKuninori MorimotoEx) Exchange output channel 166f1511a14SKuninori Morimoto Input -> Output 167f1511a14SKuninori Morimoto 1ch -> 0ch 168f1511a14SKuninori Morimoto 0ch -> 1ch 169f1511a14SKuninori Morimoto 170f1511a14SKuninori Morimoto example of using matrix 171f1511a14SKuninori Morimoto output 0ch = (input 0ch x 0) + (input 1ch x 1) 172f1511a14SKuninori Morimoto output 1ch = (input 0ch x 1) + (input 1ch x 0) 173f1511a14SKuninori Morimoto 174f1511a14SKuninori Morimoto amixer set "CTU Reset" on 175f1511a14SKuninori Morimoto amixer set "CTU Pass" 9,10 176f1511a14SKuninori Morimoto amixer set "CTU SV0" 0,4194304 177f1511a14SKuninori Morimoto amixer set "CTU SV1" 4194304,0 178f1511a14SKuninori Morimoto 179f1511a14SKuninori Morimoto example of changing connection 180f1511a14SKuninori Morimoto amixer set "CTU Reset" on 181f1511a14SKuninori Morimoto amixer set "CTU Pass" 2,1 182f1511a14SKuninori Morimoto 183f1511a14SKuninori Morimoto============================================= 184f1511a14SKuninori Morimoto* MIX (Mixer) 185f1511a14SKuninori Morimoto============================================= 186f1511a14SKuninori Morimoto 187f1511a14SKuninori MorimotoMIX merges 2 sounds path. You can see 2 sound interface on system, 188f1511a14SKuninori Morimotoand these sounds will be merged by MIX. 189f1511a14SKuninori Morimoto 190f1511a14SKuninori Morimoto aplay -D plughw:0,0 xxxx.wav & 191f1511a14SKuninori Morimoto aplay -D plughw:0,1 yyyy.wav 192f1511a14SKuninori Morimoto 1930378bb96SKuninori MorimotoYou need to use "simple-scu-audio-card" sound card for it. 194f1511a14SKuninori MorimotoEx) 195f1511a14SKuninori Morimoto [MEM] -> [SRC1] -> [CTU02] -+-> [MIX0] -> [DVC0] -> [SSI0] 196f1511a14SKuninori Morimoto | 197f1511a14SKuninori Morimoto [MEM] -> [SRC2] -> [CTU03] -+ 198f1511a14SKuninori Morimoto 199f1511a14SKuninori Morimoto sound { 2002ca69d73SKuninori Morimoto #address-cells = <1>; 2012ca69d73SKuninori Morimoto #size-cells = <0>; 2022ca69d73SKuninori Morimoto 2030378bb96SKuninori Morimoto compatible = "simple-scu-audio-card"; 204f1511a14SKuninori Morimoto ... 2052ca69d73SKuninori Morimoto simple-audio-card,cpu@0 { 2062ca69d73SKuninori Morimoto reg = <0>; 207f1511a14SKuninori Morimoto sound-dai = <&rcar_sound 0>; 208f1511a14SKuninori Morimoto }; 2092ca69d73SKuninori Morimoto simple-audio-card,cpu@1 { 2102ca69d73SKuninori Morimoto reg = <1>; 211f1511a14SKuninori Morimoto sound-dai = <&rcar_sound 1>; 212f1511a14SKuninori Morimoto }; 2130378bb96SKuninori Morimoto simple-audio-card,codec { 214f1511a14SKuninori Morimoto ... 215f1511a14SKuninori Morimoto }; 216f1511a14SKuninori Morimoto }; 217f1511a14SKuninori Morimoto 218f1511a14SKuninori Morimoto &rcar_sound { 219f1511a14SKuninori Morimoto ... 220f1511a14SKuninori Morimoto rcar_sound,dai { 221f1511a14SKuninori Morimoto dai0 { 222f1511a14SKuninori Morimoto playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 223f1511a14SKuninori Morimoto }; 224f1511a14SKuninori Morimoto dai1 { 225f1511a14SKuninori Morimoto playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 226f1511a14SKuninori Morimoto }; 227f1511a14SKuninori Morimoto }; 228f1511a14SKuninori Morimoto }; 229f1511a14SKuninori Morimoto 230f1511a14SKuninori Morimoto============================================= 231f1511a14SKuninori Morimoto* DVC (Digital Volume and Mute Function) 232f1511a14SKuninori Morimoto============================================= 233f1511a14SKuninori Morimoto 234f1511a14SKuninori MorimotoDVC controls Playback/Capture volume. 235f1511a14SKuninori Morimoto 236f1511a14SKuninori MorimotoPlayback Volume 237f1511a14SKuninori Morimoto amixer set "DVC Out" 100% 238f1511a14SKuninori Morimoto 239f1511a14SKuninori MorimotoCapture Volume 240f1511a14SKuninori Morimoto amixer set "DVC In" 100% 241f1511a14SKuninori Morimoto 242f1511a14SKuninori MorimotoPlayback Mute 243f1511a14SKuninori Morimoto amixer set "DVC Out Mute" on 244f1511a14SKuninori Morimoto 245f1511a14SKuninori MorimotoCapture Mute 246f1511a14SKuninori Morimoto amixer set "DVC In Mute" on 247f1511a14SKuninori Morimoto 248f1511a14SKuninori MorimotoVolume Ramp 249f1511a14SKuninori Morimoto amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 250f1511a14SKuninori Morimoto amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 251f1511a14SKuninori Morimoto amixer set "DVC Out Ramp" on 252f1511a14SKuninori Morimoto aplay xxx.wav & 253f1511a14SKuninori Morimoto amixer set "DVC Out" 80% // Volume Down 254f1511a14SKuninori Morimoto amixer set "DVC Out" 100% // Volume Up 255f1511a14SKuninori Morimoto 256f1511a14SKuninori Morimoto============================================= 257f1511a14SKuninori Morimoto* SSIU (Serial Sound Interface Unit) 258f1511a14SKuninori Morimoto============================================= 259f1511a14SKuninori Morimoto 260f1511a14SKuninori MorimotoThere is no DT settings for SSIU, because SSIU will be automatically 261f1511a14SKuninori Morimotoselected via SSI. 262f1511a14SKuninori MorimotoSSIU can avoid some under/over run error, because it has some buffer. 263f1511a14SKuninori MorimotoBut you can't use it if SSI was PIO mode. 264f1511a14SKuninori MorimotoIn DMA mode, you can select not to use SSIU by using "no-busif" on DT. 265f1511a14SKuninori Morimoto 266f1511a14SKuninori Morimoto &ssi0 { 267f1511a14SKuninori Morimoto no-busif; 268f1511a14SKuninori Morimoto }; 269f1511a14SKuninori Morimoto 270f1511a14SKuninori Morimoto============================================= 271f1511a14SKuninori Morimoto* SSI (Serial Sound Interface) 272f1511a14SKuninori Morimoto============================================= 273f1511a14SKuninori Morimoto 274f1511a14SKuninori Morimoto** PIO mode 275f1511a14SKuninori Morimoto 276f1511a14SKuninori MorimotoYou can use PIO mode which is for connection check by using. 277f1511a14SKuninori MorimotoNote: The system will drop non-SSI modules in PIO mode 278f1511a14SKuninori Morimotoeven though if DT is selecting other modules. 279f1511a14SKuninori Morimoto 280f1511a14SKuninori Morimoto &ssi0 { 281f1511a14SKuninori Morimoto pio-transfer 282f1511a14SKuninori Morimoto }; 283f1511a14SKuninori Morimoto 284f1511a14SKuninori Morimoto** DMA mode without SSIU 285f1511a14SKuninori Morimoto 286f1511a14SKuninori MorimotoYou can use DMA without SSIU. 287f1511a14SKuninori MorimotoNote: under/over run, or noise are likely to occur 288f1511a14SKuninori Morimoto 289f1511a14SKuninori Morimoto &ssi0 { 290f1511a14SKuninori Morimoto no-busif; 291f1511a14SKuninori Morimoto }; 292f1511a14SKuninori Morimoto 293f1511a14SKuninori Morimoto** PIN sharing 294f1511a14SKuninori Morimoto 295f1511a14SKuninori MorimotoEach SSI can share WS pin. It is based on platform. 296f1511a14SKuninori MorimotoThis is example if SSI1 want to share WS pin with SSI0 297f1511a14SKuninori Morimoto 298f1511a14SKuninori Morimoto &ssi1 { 299f1511a14SKuninori Morimoto shared-pin; 300f1511a14SKuninori Morimoto }; 301f1511a14SKuninori Morimoto 302f1511a14SKuninori Morimoto** Multi-SSI 303f1511a14SKuninori Morimoto 304f1511a14SKuninori MorimotoYou can use Multi-SSI. 305f1511a14SKuninori MorimotoThis is example of SSI0/SSI1/SSI2 (= for 6ch) 306f1511a14SKuninori Morimoto 307f1511a14SKuninori Morimoto &rcar_sound { 308f1511a14SKuninori Morimoto ... 309f1511a14SKuninori Morimoto rcar_sound,dai { 310f1511a14SKuninori Morimoto dai0 { 311f1511a14SKuninori Morimoto playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>; 312f1511a14SKuninori Morimoto }; 313f1511a14SKuninori Morimoto }; 314f1511a14SKuninori Morimoto }; 315f1511a14SKuninori Morimoto 316f1511a14SKuninori Morimoto** TDM-SSI 317f1511a14SKuninori Morimoto 318f1511a14SKuninori MorimotoYou can use TDM with SSI. 319f1511a14SKuninori MorimotoThis is example of TDM 6ch. 320f1511a14SKuninori MorimotoDriver can automatically switches TDM <-> stereo mode in this case. 321f1511a14SKuninori Morimoto 322f1511a14SKuninori Morimoto rsnd_tdm: sound { 323f1511a14SKuninori Morimoto compatible = "simple-audio-card"; 324f1511a14SKuninori Morimoto ... 325f1511a14SKuninori Morimoto simple-audio-card,cpu { 326f1511a14SKuninori Morimoto /* system can use TDM 6ch */ 327f1511a14SKuninori Morimoto dai-tdm-slot-num = <6>; 328f1511a14SKuninori Morimoto sound-dai = <&rcar_sound>; 329f1511a14SKuninori Morimoto }; 330f1511a14SKuninori Morimoto simple-audio-card,codec { 331f1511a14SKuninori Morimoto ... 332f1511a14SKuninori Morimoto }; 333f1511a14SKuninori Morimoto }; 334f1511a14SKuninori Morimoto 335f1511a14SKuninori Morimoto 336f1511a14SKuninori Morimoto============================================= 33790e8e50fSKuninori MorimotoRequired properties: 338f1511a14SKuninori Morimoto============================================= 339f1511a14SKuninori Morimoto 34056ba98acSGeert Uytterhoeven- compatible : "renesas,rcar_sound-<soctype>", fallbacks 34156ba98acSGeert Uytterhoeven "renesas,rcar_sound-gen1" if generation1, and 342b0a858a4SBiju Das "renesas,rcar_sound-gen2" if generation2 (or RZ/G1) 3436fbf9d8eSFabrizio Castro "renesas,rcar_sound-gen3" if generation3 (or RZ/G2) 34456ba98acSGeert Uytterhoeven Examples with soctypes are: 345b0a858a4SBiju Das - "renesas,rcar_sound-r8a7743" (RZ/G1M) 346765f50d4SBiju Das - "renesas,rcar_sound-r8a7744" (RZ/G1N) 347b0a858a4SBiju Das - "renesas,rcar_sound-r8a7745" (RZ/G1E) 3486fbf9d8eSFabrizio Castro - "renesas,rcar_sound-r8a774a1" (RZ/G2M) 3497667f716SGeert Uytterhoeven - "renesas,rcar_sound-r8a7778" (R-Car M1A) 3504eb404d0SSimon Horman - "renesas,rcar_sound-r8a7779" (R-Car H1) 35156ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7790" (R-Car H2) 35256ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7791" (R-Car M2-W) 3534eb404d0SSimon Horman - "renesas,rcar_sound-r8a7793" (R-Car M2-N) 3544eb404d0SSimon Horman - "renesas,rcar_sound-r8a7794" (R-Car E2) 355ac37a45bSKuninori Morimoto - "renesas,rcar_sound-r8a7795" (R-Car H3) 356da263026SGeert Uytterhoeven - "renesas,rcar_sound-r8a7796" (R-Car M3-W) 357150a6dc8SHiroyuki Yokoyama - "renesas,rcar_sound-r8a77965" (R-Car M3-N) 358e058a403SHiroyuki Yokoyama - "renesas,rcar_sound-r8a77990" (R-Car E3) 35990e8e50fSKuninori Morimoto- reg : Should contain the register physical address. 36090e8e50fSKuninori Morimoto required register is 36190e8e50fSKuninori Morimoto SRU/ADG/SSI if generation1 36290e8e50fSKuninori Morimoto SRU/ADG/SSIU/SSI if generation2 3638bab0dd5SKuninori Morimoto- rcar_sound,ssi : Should contain SSI feature. 3648bab0dd5SKuninori Morimoto The number of SSI subnode should be same as HW. 3658bab0dd5SKuninori Morimoto see below for detail. 3668bab0dd5SKuninori Morimoto- rcar_sound,src : Should contain SRC feature. 3678bab0dd5SKuninori Morimoto The number of SRC subnode should be same as HW. 3688bab0dd5SKuninori Morimoto see below for detail. 3699269e3c3SKuninori Morimoto- rcar_sound,ctu : Should contain CTU feature. 3709269e3c3SKuninori Morimoto The number of CTU subnode should be same as HW. 3719269e3c3SKuninori Morimoto see below for detail. 37270fb1052SKuninori Morimoto- rcar_sound,mix : Should contain MIX feature. 37370fb1052SKuninori Morimoto The number of MIX subnode should be same as HW. 37470fb1052SKuninori Morimoto see below for detail. 37534cb6123SKuninori Morimoto- rcar_sound,dvc : Should contain DVC feature. 37634cb6123SKuninori Morimoto The number of DVC subnode should be same as HW. 37734cb6123SKuninori Morimoto see below for detail. 3788bab0dd5SKuninori Morimoto- rcar_sound,dai : DAI contents. 3798bab0dd5SKuninori Morimoto The number of DAI subnode should be same as HW. 3808bab0dd5SKuninori Morimoto see below for detail. 381e3d2cec8SKuninori Morimoto- #sound-dai-cells : it must be 0 if your system is using single DAI 382e3d2cec8SKuninori Morimoto it must be 1 if your system is using multi DAI 3835b3889f8SKuninori Morimoto- clocks : References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks. 3845b3889f8SKuninori Morimoto- clock-names : List of necessary clock names. 3855b3889f8SKuninori Morimoto "ssi-all", "ssi.X", "src.X", "mix.X", "ctu.X", 3865b3889f8SKuninori Morimoto "dvc.X", "clk_a", "clk_b", "clk_c", "clk_i" 387209c0907SKuninori Morimoto 388209c0907SKuninori MorimotoOptional properties: 3892a46db4aSKuninori Morimoto- #clock-cells : it must be 0 if your system has audio_clkout 3902a46db4aSKuninori Morimoto it must be 1 if your system has audio_clkout0/1/2/3 3912a46db4aSKuninori Morimoto- clock-frequency : for all audio_clkout0/1/2/3 3927dc20319SKuninori Morimoto- clkout-lr-asynchronous : boolean property. it indicates that audio_clkoutn 3937dc20319SKuninori Morimoto is asynchronizes with lr-clock. 3945f440c48SGeert Uytterhoeven- resets : References to SSI resets. 3955f440c48SGeert Uytterhoeven- reset-names : List of valid reset names. 3965f440c48SGeert Uytterhoeven "ssi-all", "ssi.X" 39790e8e50fSKuninori Morimoto 39890e8e50fSKuninori MorimotoSSI subnode properties: 39990e8e50fSKuninori Morimoto- interrupts : Should contain SSI interrupt for PIO transfer 40090e8e50fSKuninori Morimoto- shared-pin : if shared clock pin 401199e7688SKuninori Morimoto- pio-transfer : use PIO transfer mode 402d9288d0bSKuninori Morimoto- no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case 403e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 404e80a2fb1SKuninori Morimoto- dma-names : SSI case "rx" (=playback), "tx" (=capture) 405e80a2fb1SKuninori Morimoto SSIU case "rxu" (=playback), "txu" (=capture) 40690e8e50fSKuninori Morimoto 4078bab0dd5SKuninori MorimotoSRC subnode properties: 408e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 409e80a2fb1SKuninori Morimoto- dma-names : "rx" (=playback), "tx" (=capture) 410e80a2fb1SKuninori Morimoto 411e80a2fb1SKuninori MorimotoDVC subnode properties: 412e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 413e80a2fb1SKuninori Morimoto- dma-names : "tx" (=playback/capture) 4148bab0dd5SKuninori Morimoto 41590e8e50fSKuninori MorimotoDAI subnode properties: 41690e8e50fSKuninori Morimoto- playback : list of playback modules 41790e8e50fSKuninori Morimoto- capture : list of capture modules 41890e8e50fSKuninori Morimoto 419f1511a14SKuninori Morimoto 420f1511a14SKuninori Morimoto============================================= 42190e8e50fSKuninori MorimotoExample: 422f1511a14SKuninori Morimoto============================================= 42390e8e50fSKuninori Morimoto 424596f74ecSGeert Uytterhoevenrcar_sound: sound@ec500000 { 42590e8e50fSKuninori Morimoto #sound-dai-cells = <1>; 42656ba98acSGeert Uytterhoeven compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; 42790e8e50fSKuninori Morimoto reg = <0 0xec500000 0 0x1000>, /* SCU */ 42890e8e50fSKuninori Morimoto <0 0xec5a0000 0 0x100>, /* ADG */ 42990e8e50fSKuninori Morimoto <0 0xec540000 0 0x1000>, /* SSIU */ 430d3b1c0baSKuninori Morimoto <0 0xec541000 0 0x1280>, /* SSI */ 431d3b1c0baSKuninori Morimoto <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 432d3b1c0baSKuninori Morimoto reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 43390e8e50fSKuninori Morimoto 434bb02714fSKuninori Morimoto clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, 435bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, 436bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, 437bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, 438bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, 439bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, 440bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, 441bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, 442bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 443bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 444bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 445bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 446bb02714fSKuninori Morimoto <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 447bb02714fSKuninori Morimoto clock-names = "ssi-all", 448bb02714fSKuninori Morimoto "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 449bb02714fSKuninori Morimoto "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 450bb02714fSKuninori Morimoto "src.9", "src.8", "src.7", "src.6", "src.5", 451bb02714fSKuninori Morimoto "src.4", "src.3", "src.2", "src.1", "src.0", 452bb02714fSKuninori Morimoto "dvc.0", "dvc.1", 453bb02714fSKuninori Morimoto "clk_a", "clk_b", "clk_c", "clk_i"; 454bb02714fSKuninori Morimoto 45534cb6123SKuninori Morimoto rcar_sound,dvc { 456a5702e1cSGeert Uytterhoeven dvc0: dvc-0 { 457e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbc>; 458e80a2fb1SKuninori Morimoto dma-names = "tx"; 459e80a2fb1SKuninori Morimoto }; 460a5702e1cSGeert Uytterhoeven dvc1: dvc-1 { 461e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbe>; 462e80a2fb1SKuninori Morimoto dma-names = "tx"; 463e80a2fb1SKuninori Morimoto }; 46434cb6123SKuninori Morimoto }; 46534cb6123SKuninori Morimoto 46670fb1052SKuninori Morimoto rcar_sound,mix { 467a5702e1cSGeert Uytterhoeven mix0: mix-0 { }; 468a5702e1cSGeert Uytterhoeven mix1: mix-1 { }; 46970fb1052SKuninori Morimoto }; 47070fb1052SKuninori Morimoto 4719269e3c3SKuninori Morimoto rcar_sound,ctu { 472a5702e1cSGeert Uytterhoeven ctu00: ctu-0 { }; 473a5702e1cSGeert Uytterhoeven ctu01: ctu-1 { }; 474a5702e1cSGeert Uytterhoeven ctu02: ctu-2 { }; 475a5702e1cSGeert Uytterhoeven ctu03: ctu-3 { }; 476a5702e1cSGeert Uytterhoeven ctu10: ctu-4 { }; 477a5702e1cSGeert Uytterhoeven ctu11: ctu-5 { }; 478a5702e1cSGeert Uytterhoeven ctu12: ctu-6 { }; 479a5702e1cSGeert Uytterhoeven ctu13: ctu-7 { }; 4809269e3c3SKuninori Morimoto }; 4819269e3c3SKuninori Morimoto 48290e8e50fSKuninori Morimoto rcar_sound,src { 483a5702e1cSGeert Uytterhoeven src0: src-0 { 4845cf4f686SKuninori Morimoto interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 485e80a2fb1SKuninori Morimoto dmas = <&audma0 0x85>, <&audma1 0x9a>; 486e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4875cf4f686SKuninori Morimoto }; 488a5702e1cSGeert Uytterhoeven src1: src-1 { 4895cf4f686SKuninori Morimoto interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; 490e80a2fb1SKuninori Morimoto dmas = <&audma0 0x87>, <&audma1 0x9c>; 491e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4925cf4f686SKuninori Morimoto }; 493a5702e1cSGeert Uytterhoeven src2: src-2 { 4945cf4f686SKuninori Morimoto interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; 495e80a2fb1SKuninori Morimoto dmas = <&audma0 0x89>, <&audma1 0x9e>; 496e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 4975cf4f686SKuninori Morimoto }; 498a5702e1cSGeert Uytterhoeven src3: src-3 { 4995cf4f686SKuninori Morimoto interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; 500e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8b>, <&audma1 0xa0>; 501e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5025cf4f686SKuninori Morimoto }; 503a5702e1cSGeert Uytterhoeven src4: src-4 { 5045cf4f686SKuninori Morimoto interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; 505e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8d>, <&audma1 0xb0>; 506e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5075cf4f686SKuninori Morimoto }; 508a5702e1cSGeert Uytterhoeven src5: src-5 { 5095cf4f686SKuninori Morimoto interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; 510e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8f>, <&audma1 0xb2>; 511e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5125cf4f686SKuninori Morimoto }; 513a5702e1cSGeert Uytterhoeven src6: src-6 { 5145cf4f686SKuninori Morimoto interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; 515e80a2fb1SKuninori Morimoto dmas = <&audma0 0x91>, <&audma1 0xb4>; 516e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5175cf4f686SKuninori Morimoto }; 518a5702e1cSGeert Uytterhoeven src7: src-7 { 5195cf4f686SKuninori Morimoto interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; 520e80a2fb1SKuninori Morimoto dmas = <&audma0 0x93>, <&audma1 0xb6>; 521e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5225cf4f686SKuninori Morimoto }; 523a5702e1cSGeert Uytterhoeven src8: src-8 { 5245cf4f686SKuninori Morimoto interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; 525e80a2fb1SKuninori Morimoto dmas = <&audma0 0x95>, <&audma1 0xb8>; 526e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5275cf4f686SKuninori Morimoto }; 528a5702e1cSGeert Uytterhoeven src9: src-9 { 5295cf4f686SKuninori Morimoto interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; 530e80a2fb1SKuninori Morimoto dmas = <&audma0 0x97>, <&audma1 0xba>; 531e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 5325cf4f686SKuninori Morimoto }; 53390e8e50fSKuninori Morimoto }; 53490e8e50fSKuninori Morimoto 53590e8e50fSKuninori Morimoto rcar_sound,ssi { 536a5702e1cSGeert Uytterhoeven ssi0: ssi-0 { 53790e8e50fSKuninori Morimoto interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 538e80a2fb1SKuninori Morimoto dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 539e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 54090e8e50fSKuninori Morimoto }; 541a5702e1cSGeert Uytterhoeven ssi1: ssi-1 { 54290e8e50fSKuninori Morimoto interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 543e80a2fb1SKuninori Morimoto dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 544e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 54590e8e50fSKuninori Morimoto }; 546a5702e1cSGeert Uytterhoeven ssi2: ssi-2 { 54790e8e50fSKuninori Morimoto interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; 548e80a2fb1SKuninori Morimoto dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 549e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 55090e8e50fSKuninori Morimoto }; 551a5702e1cSGeert Uytterhoeven ssi3: ssi-3 { 55290e8e50fSKuninori Morimoto interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; 553e80a2fb1SKuninori Morimoto dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 554e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 55590e8e50fSKuninori Morimoto }; 556a5702e1cSGeert Uytterhoeven ssi4: ssi-4 { 55790e8e50fSKuninori Morimoto interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; 558e80a2fb1SKuninori Morimoto dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 559e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 56090e8e50fSKuninori Morimoto }; 561a5702e1cSGeert Uytterhoeven ssi5: ssi-5 { 56290e8e50fSKuninori Morimoto interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; 563e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 564e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 56590e8e50fSKuninori Morimoto }; 566a5702e1cSGeert Uytterhoeven ssi6: ssi-6 { 56790e8e50fSKuninori Morimoto interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; 568e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 569e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 57090e8e50fSKuninori Morimoto }; 571a5702e1cSGeert Uytterhoeven ssi7: ssi-7 { 57290e8e50fSKuninori Morimoto interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; 573e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 574e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 57590e8e50fSKuninori Morimoto }; 576a5702e1cSGeert Uytterhoeven ssi8: ssi-8 { 57790e8e50fSKuninori Morimoto interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 578e80a2fb1SKuninori Morimoto dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 579e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 58090e8e50fSKuninori Morimoto }; 581a5702e1cSGeert Uytterhoeven ssi9: ssi-9 { 58290e8e50fSKuninori Morimoto interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 583e80a2fb1SKuninori Morimoto dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 584e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 58590e8e50fSKuninori Morimoto }; 58690e8e50fSKuninori Morimoto }; 58790e8e50fSKuninori Morimoto 58890e8e50fSKuninori Morimoto rcar_sound,dai { 58990e8e50fSKuninori Morimoto dai0 { 59090e8e50fSKuninori Morimoto playback = <&ssi5 &src5>; 59190e8e50fSKuninori Morimoto capture = <&ssi6>; 59290e8e50fSKuninori Morimoto }; 59390e8e50fSKuninori Morimoto dai1 { 59490e8e50fSKuninori Morimoto playback = <&ssi3>; 59590e8e50fSKuninori Morimoto }; 59690e8e50fSKuninori Morimoto dai2 { 59790e8e50fSKuninori Morimoto capture = <&ssi4>; 59890e8e50fSKuninori Morimoto }; 59990e8e50fSKuninori Morimoto dai3 { 60090e8e50fSKuninori Morimoto playback = <&ssi7>; 60190e8e50fSKuninori Morimoto }; 60290e8e50fSKuninori Morimoto dai4 { 60390e8e50fSKuninori Morimoto capture = <&ssi8>; 60490e8e50fSKuninori Morimoto }; 60590e8e50fSKuninori Morimoto }; 60690e8e50fSKuninori Morimoto}; 607f3f17d32SKuninori Morimoto 608f1511a14SKuninori Morimoto============================================= 609f3f17d32SKuninori MorimotoExample: simple sound card 610f1511a14SKuninori Morimoto============================================= 611f3f17d32SKuninori Morimoto 612f3f17d32SKuninori Morimoto rsnd_ak4643: sound { 613f3f17d32SKuninori Morimoto compatible = "simple-audio-card"; 614f3f17d32SKuninori Morimoto 615f3f17d32SKuninori Morimoto simple-audio-card,format = "left_j"; 616f3f17d32SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 617f3f17d32SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 618f3f17d32SKuninori Morimoto 619f3f17d32SKuninori Morimoto sndcpu: simple-audio-card,cpu { 620f3f17d32SKuninori Morimoto sound-dai = <&rcar_sound>; 621f3f17d32SKuninori Morimoto }; 622f3f17d32SKuninori Morimoto 623f3f17d32SKuninori Morimoto sndcodec: simple-audio-card,codec { 624f3f17d32SKuninori Morimoto sound-dai = <&ak4643>; 625f3f17d32SKuninori Morimoto clocks = <&audio_clock>; 626f3f17d32SKuninori Morimoto }; 627f3f17d32SKuninori Morimoto }; 628f3f17d32SKuninori Morimoto 629f3f17d32SKuninori Morimoto&rcar_sound { 630f3f17d32SKuninori Morimoto pinctrl-0 = <&sound_pins &sound_clk_pins>; 631f3f17d32SKuninori Morimoto pinctrl-names = "default"; 632f3f17d32SKuninori Morimoto 633f3f17d32SKuninori Morimoto /* Single DAI */ 634f3f17d32SKuninori Morimoto #sound-dai-cells = <0>; 635f3f17d32SKuninori Morimoto 636f3f17d32SKuninori Morimoto 637f3f17d32SKuninori Morimoto rcar_sound,dai { 638f3f17d32SKuninori Morimoto dai0 { 639f3f17d32SKuninori Morimoto playback = <&ssi0 &src2 &dvc0>; 640f3f17d32SKuninori Morimoto capture = <&ssi1 &src3 &dvc1>; 641f3f17d32SKuninori Morimoto }; 642f3f17d32SKuninori Morimoto }; 643f3f17d32SKuninori Morimoto}; 644f3f17d32SKuninori Morimoto 645f3f17d32SKuninori Morimoto&ssi1 { 646f3f17d32SKuninori Morimoto shared-pin; 647f3f17d32SKuninori Morimoto}; 64844bf5361SKuninori Morimoto 649f1511a14SKuninori Morimoto============================================= 65044bf5361SKuninori MorimotoExample: simple sound card for TDM 651f1511a14SKuninori Morimoto============================================= 65244bf5361SKuninori Morimoto 65344bf5361SKuninori Morimoto rsnd_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============================================= 671b4c83b17SKuninori MorimotoExample: simple sound card for Multi channel 672f1511a14SKuninori Morimoto============================================= 673b4c83b17SKuninori Morimoto 674b4c83b17SKuninori Morimoto&rcar_sound { 675b4c83b17SKuninori Morimoto pinctrl-0 = <&sound_pins &sound_clk_pins>; 676b4c83b17SKuninori Morimoto pinctrl-names = "default"; 677b4c83b17SKuninori Morimoto 678b4c83b17SKuninori Morimoto /* Single DAI */ 679b4c83b17SKuninori Morimoto #sound-dai-cells = <0>; 680b4c83b17SKuninori Morimoto 681b4c83b17SKuninori Morimoto 682b4c83b17SKuninori Morimoto rcar_sound,dai { 683b4c83b17SKuninori Morimoto dai0 { 684b4c83b17SKuninori Morimoto playback = <&ssi0 &ssi1 &ssi2 &src0 &dvc0>; 685b4c83b17SKuninori Morimoto }; 686b4c83b17SKuninori Morimoto }; 687b4c83b17SKuninori Morimoto}; 688