190e8e50fSKuninori MorimotoRenesas R-Car sound 290e8e50fSKuninori Morimoto 390e8e50fSKuninori MorimotoRequired properties: 456ba98acSGeert Uytterhoeven- compatible : "renesas,rcar_sound-<soctype>", fallbacks 556ba98acSGeert Uytterhoeven "renesas,rcar_sound-gen1" if generation1, and 690e8e50fSKuninori Morimoto "renesas,rcar_sound-gen2" if generation2 7ac37a45bSKuninori Morimoto "renesas,rcar_sound-gen3" if generation3 856ba98acSGeert Uytterhoeven Examples with soctypes are: 97667f716SGeert Uytterhoeven - "renesas,rcar_sound-r8a7778" (R-Car M1A) 10*4eb404d0SSimon Horman - "renesas,rcar_sound-r8a7779" (R-Car H1) 1156ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7790" (R-Car H2) 1256ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7791" (R-Car M2-W) 13*4eb404d0SSimon Horman - "renesas,rcar_sound-r8a7793" (R-Car M2-N) 14*4eb404d0SSimon Horman - "renesas,rcar_sound-r8a7794" (R-Car E2) 15ac37a45bSKuninori Morimoto - "renesas,rcar_sound-r8a7795" (R-Car H3) 1690e8e50fSKuninori Morimoto- reg : Should contain the register physical address. 1790e8e50fSKuninori Morimoto required register is 1890e8e50fSKuninori Morimoto SRU/ADG/SSI if generation1 1990e8e50fSKuninori Morimoto SRU/ADG/SSIU/SSI if generation2 208bab0dd5SKuninori Morimoto- rcar_sound,ssi : Should contain SSI feature. 218bab0dd5SKuninori Morimoto The number of SSI subnode should be same as HW. 228bab0dd5SKuninori Morimoto see below for detail. 238bab0dd5SKuninori Morimoto- rcar_sound,src : Should contain SRC feature. 248bab0dd5SKuninori Morimoto The number of SRC subnode should be same as HW. 258bab0dd5SKuninori Morimoto see below for detail. 269269e3c3SKuninori Morimoto- rcar_sound,ctu : Should contain CTU feature. 279269e3c3SKuninori Morimoto The number of CTU subnode should be same as HW. 289269e3c3SKuninori Morimoto see below for detail. 2970fb1052SKuninori Morimoto- rcar_sound,mix : Should contain MIX feature. 3070fb1052SKuninori Morimoto The number of MIX subnode should be same as HW. 3170fb1052SKuninori Morimoto see below for detail. 3234cb6123SKuninori Morimoto- rcar_sound,dvc : Should contain DVC feature. 3334cb6123SKuninori Morimoto The number of DVC subnode should be same as HW. 3434cb6123SKuninori Morimoto see below for detail. 358bab0dd5SKuninori Morimoto- rcar_sound,dai : DAI contents. 368bab0dd5SKuninori Morimoto The number of DAI subnode should be same as HW. 378bab0dd5SKuninori Morimoto see below for detail. 38e3d2cec8SKuninori Morimoto- #sound-dai-cells : it must be 0 if your system is using single DAI 39e3d2cec8SKuninori Morimoto it must be 1 if your system is using multi DAI 40209c0907SKuninori Morimoto 41209c0907SKuninori MorimotoOptional properties: 422a46db4aSKuninori Morimoto- #clock-cells : it must be 0 if your system has audio_clkout 432a46db4aSKuninori Morimoto it must be 1 if your system has audio_clkout0/1/2/3 442a46db4aSKuninori Morimoto- clock-frequency : for all audio_clkout0/1/2/3 4590e8e50fSKuninori Morimoto 4690e8e50fSKuninori MorimotoSSI subnode properties: 4790e8e50fSKuninori Morimoto- interrupts : Should contain SSI interrupt for PIO transfer 4890e8e50fSKuninori Morimoto- shared-pin : if shared clock pin 49199e7688SKuninori Morimoto- pio-transfer : use PIO transfer mode 50d9288d0bSKuninori Morimoto- no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case 51e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 52e80a2fb1SKuninori Morimoto- dma-names : SSI case "rx" (=playback), "tx" (=capture) 53e80a2fb1SKuninori Morimoto SSIU case "rxu" (=playback), "txu" (=capture) 5490e8e50fSKuninori Morimoto 558bab0dd5SKuninori MorimotoSRC subnode properties: 56e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 57e80a2fb1SKuninori Morimoto- dma-names : "rx" (=playback), "tx" (=capture) 58e80a2fb1SKuninori Morimoto 59e80a2fb1SKuninori MorimotoDVC subnode properties: 60e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 61e80a2fb1SKuninori Morimoto- dma-names : "tx" (=playback/capture) 628bab0dd5SKuninori Morimoto 6390e8e50fSKuninori MorimotoDAI subnode properties: 6490e8e50fSKuninori Morimoto- playback : list of playback modules 6590e8e50fSKuninori Morimoto- capture : list of capture modules 6690e8e50fSKuninori Morimoto 6790e8e50fSKuninori MorimotoExample: 6890e8e50fSKuninori Morimoto 69596f74ecSGeert Uytterhoevenrcar_sound: sound@ec500000 { 7090e8e50fSKuninori Morimoto #sound-dai-cells = <1>; 7156ba98acSGeert Uytterhoeven compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; 7290e8e50fSKuninori Morimoto reg = <0 0xec500000 0 0x1000>, /* SCU */ 7390e8e50fSKuninori Morimoto <0 0xec5a0000 0 0x100>, /* ADG */ 7490e8e50fSKuninori Morimoto <0 0xec540000 0 0x1000>, /* SSIU */ 75d3b1c0baSKuninori Morimoto <0 0xec541000 0 0x1280>, /* SSI */ 76d3b1c0baSKuninori Morimoto <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 77d3b1c0baSKuninori Morimoto reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 7890e8e50fSKuninori Morimoto 79bb02714fSKuninori Morimoto clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, 80bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, 81bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, 82bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, 83bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, 84bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, 85bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, 86bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, 87bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 88bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 89bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 90bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 91bb02714fSKuninori Morimoto <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 92bb02714fSKuninori Morimoto clock-names = "ssi-all", 93bb02714fSKuninori Morimoto "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 94bb02714fSKuninori Morimoto "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 95bb02714fSKuninori Morimoto "src.9", "src.8", "src.7", "src.6", "src.5", 96bb02714fSKuninori Morimoto "src.4", "src.3", "src.2", "src.1", "src.0", 97bb02714fSKuninori Morimoto "dvc.0", "dvc.1", 98bb02714fSKuninori Morimoto "clk_a", "clk_b", "clk_c", "clk_i"; 99bb02714fSKuninori Morimoto 10034cb6123SKuninori Morimoto rcar_sound,dvc { 101e80a2fb1SKuninori Morimoto dvc0: dvc@0 { 102e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbc>; 103e80a2fb1SKuninori Morimoto dma-names = "tx"; 104e80a2fb1SKuninori Morimoto }; 105e80a2fb1SKuninori Morimoto dvc1: dvc@1 { 106e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbe>; 107e80a2fb1SKuninori Morimoto dma-names = "tx"; 108e80a2fb1SKuninori Morimoto }; 10934cb6123SKuninori Morimoto }; 11034cb6123SKuninori Morimoto 11170fb1052SKuninori Morimoto rcar_sound,mix { 11270fb1052SKuninori Morimoto mix0: mix@0 { }; 11370fb1052SKuninori Morimoto mix1: mix@1 { }; 11470fb1052SKuninori Morimoto }; 11570fb1052SKuninori Morimoto 1169269e3c3SKuninori Morimoto rcar_sound,ctu { 1179269e3c3SKuninori Morimoto ctu00: ctu@0 { }; 1189269e3c3SKuninori Morimoto ctu01: ctu@1 { }; 1199269e3c3SKuninori Morimoto ctu02: ctu@2 { }; 1209269e3c3SKuninori Morimoto ctu03: ctu@3 { }; 1219269e3c3SKuninori Morimoto ctu10: ctu@4 { }; 1229269e3c3SKuninori Morimoto ctu11: ctu@5 { }; 1239269e3c3SKuninori Morimoto ctu12: ctu@6 { }; 1249269e3c3SKuninori Morimoto ctu13: ctu@7 { }; 1259269e3c3SKuninori Morimoto }; 1269269e3c3SKuninori Morimoto 12790e8e50fSKuninori Morimoto rcar_sound,src { 1285cf4f686SKuninori Morimoto src0: src@0 { 1295cf4f686SKuninori Morimoto interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 130e80a2fb1SKuninori Morimoto dmas = <&audma0 0x85>, <&audma1 0x9a>; 131e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1325cf4f686SKuninori Morimoto }; 1335cf4f686SKuninori Morimoto src1: src@1 { 1345cf4f686SKuninori Morimoto interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; 135e80a2fb1SKuninori Morimoto dmas = <&audma0 0x87>, <&audma1 0x9c>; 136e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1375cf4f686SKuninori Morimoto }; 1385cf4f686SKuninori Morimoto src2: src@2 { 1395cf4f686SKuninori Morimoto interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; 140e80a2fb1SKuninori Morimoto dmas = <&audma0 0x89>, <&audma1 0x9e>; 141e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1425cf4f686SKuninori Morimoto }; 1435cf4f686SKuninori Morimoto src3: src@3 { 1445cf4f686SKuninori Morimoto interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; 145e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8b>, <&audma1 0xa0>; 146e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1475cf4f686SKuninori Morimoto }; 1485cf4f686SKuninori Morimoto src4: src@4 { 1495cf4f686SKuninori Morimoto interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; 150e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8d>, <&audma1 0xb0>; 151e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1525cf4f686SKuninori Morimoto }; 1535cf4f686SKuninori Morimoto src5: src@5 { 1545cf4f686SKuninori Morimoto interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; 155e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8f>, <&audma1 0xb2>; 156e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1575cf4f686SKuninori Morimoto }; 1585cf4f686SKuninori Morimoto src6: src@6 { 1595cf4f686SKuninori Morimoto interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; 160e80a2fb1SKuninori Morimoto dmas = <&audma0 0x91>, <&audma1 0xb4>; 161e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1625cf4f686SKuninori Morimoto }; 1635cf4f686SKuninori Morimoto src7: src@7 { 1645cf4f686SKuninori Morimoto interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; 165e80a2fb1SKuninori Morimoto dmas = <&audma0 0x93>, <&audma1 0xb6>; 166e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1675cf4f686SKuninori Morimoto }; 1685cf4f686SKuninori Morimoto src8: src@8 { 1695cf4f686SKuninori Morimoto interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; 170e80a2fb1SKuninori Morimoto dmas = <&audma0 0x95>, <&audma1 0xb8>; 171e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1725cf4f686SKuninori Morimoto }; 1735cf4f686SKuninori Morimoto src9: src@9 { 1745cf4f686SKuninori Morimoto interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; 175e80a2fb1SKuninori Morimoto dmas = <&audma0 0x97>, <&audma1 0xba>; 176e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1775cf4f686SKuninori Morimoto }; 17890e8e50fSKuninori Morimoto }; 17990e8e50fSKuninori Morimoto 18090e8e50fSKuninori Morimoto rcar_sound,ssi { 18190e8e50fSKuninori Morimoto ssi0: ssi@0 { 18290e8e50fSKuninori Morimoto interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 183e80a2fb1SKuninori Morimoto dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 184e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 18590e8e50fSKuninori Morimoto }; 18690e8e50fSKuninori Morimoto ssi1: ssi@1 { 18790e8e50fSKuninori Morimoto interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 188e80a2fb1SKuninori Morimoto dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 189e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 19090e8e50fSKuninori Morimoto }; 19190e8e50fSKuninori Morimoto ssi2: ssi@2 { 19290e8e50fSKuninori Morimoto interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; 193e80a2fb1SKuninori Morimoto dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 194e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 19590e8e50fSKuninori Morimoto }; 19690e8e50fSKuninori Morimoto ssi3: ssi@3 { 19790e8e50fSKuninori Morimoto interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; 198e80a2fb1SKuninori Morimoto dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 199e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 20090e8e50fSKuninori Morimoto }; 20190e8e50fSKuninori Morimoto ssi4: ssi@4 { 20290e8e50fSKuninori Morimoto interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; 203e80a2fb1SKuninori Morimoto dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 204e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 20590e8e50fSKuninori Morimoto }; 20690e8e50fSKuninori Morimoto ssi5: ssi@5 { 20790e8e50fSKuninori Morimoto interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; 208e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 209e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 21090e8e50fSKuninori Morimoto }; 21190e8e50fSKuninori Morimoto ssi6: ssi@6 { 21290e8e50fSKuninori Morimoto interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; 213e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 214e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 21590e8e50fSKuninori Morimoto }; 21690e8e50fSKuninori Morimoto ssi7: ssi@7 { 21790e8e50fSKuninori Morimoto interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; 218e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 219e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 22090e8e50fSKuninori Morimoto }; 22190e8e50fSKuninori Morimoto ssi8: ssi@8 { 22290e8e50fSKuninori Morimoto interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 223e80a2fb1SKuninori Morimoto dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 224e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 22590e8e50fSKuninori Morimoto }; 22690e8e50fSKuninori Morimoto ssi9: ssi@9 { 22790e8e50fSKuninori Morimoto interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 228e80a2fb1SKuninori Morimoto dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 229e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 23090e8e50fSKuninori Morimoto }; 23190e8e50fSKuninori Morimoto }; 23290e8e50fSKuninori Morimoto 23390e8e50fSKuninori Morimoto rcar_sound,dai { 23490e8e50fSKuninori Morimoto dai0 { 23590e8e50fSKuninori Morimoto playback = <&ssi5 &src5>; 23690e8e50fSKuninori Morimoto capture = <&ssi6>; 23790e8e50fSKuninori Morimoto }; 23890e8e50fSKuninori Morimoto dai1 { 23990e8e50fSKuninori Morimoto playback = <&ssi3>; 24090e8e50fSKuninori Morimoto }; 24190e8e50fSKuninori Morimoto dai2 { 24290e8e50fSKuninori Morimoto capture = <&ssi4>; 24390e8e50fSKuninori Morimoto }; 24490e8e50fSKuninori Morimoto dai3 { 24590e8e50fSKuninori Morimoto playback = <&ssi7>; 24690e8e50fSKuninori Morimoto }; 24790e8e50fSKuninori Morimoto dai4 { 24890e8e50fSKuninori Morimoto capture = <&ssi8>; 24990e8e50fSKuninori Morimoto }; 25090e8e50fSKuninori Morimoto }; 25190e8e50fSKuninori Morimoto}; 252