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 756ba98acSGeert Uytterhoeven Examples with soctypes are: 87667f716SGeert Uytterhoeven - "renesas,rcar_sound-r8a7778" (R-Car M1A) 956ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7790" (R-Car H2) 1056ba98acSGeert Uytterhoeven - "renesas,rcar_sound-r8a7791" (R-Car M2-W) 1190e8e50fSKuninori Morimoto- reg : Should contain the register physical address. 1290e8e50fSKuninori Morimoto required register is 1390e8e50fSKuninori Morimoto SRU/ADG/SSI if generation1 1490e8e50fSKuninori Morimoto SRU/ADG/SSIU/SSI if generation2 158bab0dd5SKuninori Morimoto- rcar_sound,ssi : Should contain SSI feature. 168bab0dd5SKuninori Morimoto The number of SSI subnode should be same as HW. 178bab0dd5SKuninori Morimoto see below for detail. 188bab0dd5SKuninori Morimoto- rcar_sound,src : Should contain SRC feature. 198bab0dd5SKuninori Morimoto The number of SRC subnode should be same as HW. 208bab0dd5SKuninori Morimoto see below for detail. 21*9269e3c3SKuninori Morimoto- rcar_sound,ctu : Should contain CTU feature. 22*9269e3c3SKuninori Morimoto The number of CTU subnode should be same as HW. 23*9269e3c3SKuninori Morimoto see below for detail. 2434cb6123SKuninori Morimoto- rcar_sound,dvc : Should contain DVC feature. 2534cb6123SKuninori Morimoto The number of DVC subnode should be same as HW. 2634cb6123SKuninori Morimoto see below for detail. 278bab0dd5SKuninori Morimoto- rcar_sound,dai : DAI contents. 288bab0dd5SKuninori Morimoto The number of DAI subnode should be same as HW. 298bab0dd5SKuninori Morimoto see below for detail. 3090e8e50fSKuninori Morimoto 3190e8e50fSKuninori MorimotoSSI subnode properties: 3290e8e50fSKuninori Morimoto- interrupts : Should contain SSI interrupt for PIO transfer 3390e8e50fSKuninori Morimoto- shared-pin : if shared clock pin 34199e7688SKuninori Morimoto- pio-transfer : use PIO transfer mode 35d9288d0bSKuninori Morimoto- no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case 36e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 37e80a2fb1SKuninori Morimoto- dma-names : SSI case "rx" (=playback), "tx" (=capture) 38e80a2fb1SKuninori Morimoto SSIU case "rxu" (=playback), "txu" (=capture) 3990e8e50fSKuninori Morimoto 408bab0dd5SKuninori MorimotoSRC subnode properties: 41e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 42e80a2fb1SKuninori Morimoto- dma-names : "rx" (=playback), "tx" (=capture) 43e80a2fb1SKuninori Morimoto 44e80a2fb1SKuninori MorimotoDVC subnode properties: 45e80a2fb1SKuninori Morimoto- dma : Should contain Audio DMAC entry 46e80a2fb1SKuninori Morimoto- dma-names : "tx" (=playback/capture) 478bab0dd5SKuninori Morimoto 4890e8e50fSKuninori MorimotoDAI subnode properties: 4990e8e50fSKuninori Morimoto- playback : list of playback modules 5090e8e50fSKuninori Morimoto- capture : list of capture modules 5190e8e50fSKuninori Morimoto 5290e8e50fSKuninori MorimotoExample: 5390e8e50fSKuninori Morimoto 54596f74ecSGeert Uytterhoevenrcar_sound: sound@ec500000 { 5590e8e50fSKuninori Morimoto #sound-dai-cells = <1>; 5656ba98acSGeert Uytterhoeven compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; 5790e8e50fSKuninori Morimoto reg = <0 0xec500000 0 0x1000>, /* SCU */ 5890e8e50fSKuninori Morimoto <0 0xec5a0000 0 0x100>, /* ADG */ 5990e8e50fSKuninori Morimoto <0 0xec540000 0 0x1000>, /* SSIU */ 60d3b1c0baSKuninori Morimoto <0 0xec541000 0 0x1280>, /* SSI */ 61d3b1c0baSKuninori Morimoto <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 62d3b1c0baSKuninori Morimoto reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 6390e8e50fSKuninori Morimoto 64bb02714fSKuninori Morimoto clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, 65bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, 66bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, 67bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, 68bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, 69bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, 70bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, 71bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, 72bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 73bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 74bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 75bb02714fSKuninori Morimoto <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 76bb02714fSKuninori Morimoto <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 77bb02714fSKuninori Morimoto clock-names = "ssi-all", 78bb02714fSKuninori Morimoto "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", 79bb02714fSKuninori Morimoto "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 80bb02714fSKuninori Morimoto "src.9", "src.8", "src.7", "src.6", "src.5", 81bb02714fSKuninori Morimoto "src.4", "src.3", "src.2", "src.1", "src.0", 82bb02714fSKuninori Morimoto "dvc.0", "dvc.1", 83bb02714fSKuninori Morimoto "clk_a", "clk_b", "clk_c", "clk_i"; 84bb02714fSKuninori Morimoto 8534cb6123SKuninori Morimoto rcar_sound,dvc { 86e80a2fb1SKuninori Morimoto dvc0: dvc@0 { 87e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbc>; 88e80a2fb1SKuninori Morimoto dma-names = "tx"; 89e80a2fb1SKuninori Morimoto }; 90e80a2fb1SKuninori Morimoto dvc1: dvc@1 { 91e80a2fb1SKuninori Morimoto dmas = <&audma0 0xbe>; 92e80a2fb1SKuninori Morimoto dma-names = "tx"; 93e80a2fb1SKuninori Morimoto }; 9434cb6123SKuninori Morimoto }; 9534cb6123SKuninori Morimoto 96*9269e3c3SKuninori Morimoto rcar_sound,ctu { 97*9269e3c3SKuninori Morimoto ctu00: ctu@0 { }; 98*9269e3c3SKuninori Morimoto ctu01: ctu@1 { }; 99*9269e3c3SKuninori Morimoto ctu02: ctu@2 { }; 100*9269e3c3SKuninori Morimoto ctu03: ctu@3 { }; 101*9269e3c3SKuninori Morimoto ctu10: ctu@4 { }; 102*9269e3c3SKuninori Morimoto ctu11: ctu@5 { }; 103*9269e3c3SKuninori Morimoto ctu12: ctu@6 { }; 104*9269e3c3SKuninori Morimoto ctu13: ctu@7 { }; 105*9269e3c3SKuninori Morimoto }; 106*9269e3c3SKuninori Morimoto 10790e8e50fSKuninori Morimoto rcar_sound,src { 1085cf4f686SKuninori Morimoto src0: src@0 { 1095cf4f686SKuninori Morimoto interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 110e80a2fb1SKuninori Morimoto dmas = <&audma0 0x85>, <&audma1 0x9a>; 111e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1125cf4f686SKuninori Morimoto }; 1135cf4f686SKuninori Morimoto src1: src@1 { 1145cf4f686SKuninori Morimoto interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; 115e80a2fb1SKuninori Morimoto dmas = <&audma0 0x87>, <&audma1 0x9c>; 116e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1175cf4f686SKuninori Morimoto }; 1185cf4f686SKuninori Morimoto src2: src@2 { 1195cf4f686SKuninori Morimoto interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; 120e80a2fb1SKuninori Morimoto dmas = <&audma0 0x89>, <&audma1 0x9e>; 121e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1225cf4f686SKuninori Morimoto }; 1235cf4f686SKuninori Morimoto src3: src@3 { 1245cf4f686SKuninori Morimoto interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; 125e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8b>, <&audma1 0xa0>; 126e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1275cf4f686SKuninori Morimoto }; 1285cf4f686SKuninori Morimoto src4: src@4 { 1295cf4f686SKuninori Morimoto interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; 130e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8d>, <&audma1 0xb0>; 131e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1325cf4f686SKuninori Morimoto }; 1335cf4f686SKuninori Morimoto src5: src@5 { 1345cf4f686SKuninori Morimoto interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; 135e80a2fb1SKuninori Morimoto dmas = <&audma0 0x8f>, <&audma1 0xb2>; 136e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1375cf4f686SKuninori Morimoto }; 1385cf4f686SKuninori Morimoto src6: src@6 { 1395cf4f686SKuninori Morimoto interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; 140e80a2fb1SKuninori Morimoto dmas = <&audma0 0x91>, <&audma1 0xb4>; 141e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1425cf4f686SKuninori Morimoto }; 1435cf4f686SKuninori Morimoto src7: src@7 { 1445cf4f686SKuninori Morimoto interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; 145e80a2fb1SKuninori Morimoto dmas = <&audma0 0x93>, <&audma1 0xb6>; 146e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1475cf4f686SKuninori Morimoto }; 1485cf4f686SKuninori Morimoto src8: src@8 { 1495cf4f686SKuninori Morimoto interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; 150e80a2fb1SKuninori Morimoto dmas = <&audma0 0x95>, <&audma1 0xb8>; 151e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1525cf4f686SKuninori Morimoto }; 1535cf4f686SKuninori Morimoto src9: src@9 { 1545cf4f686SKuninori Morimoto interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; 155e80a2fb1SKuninori Morimoto dmas = <&audma0 0x97>, <&audma1 0xba>; 156e80a2fb1SKuninori Morimoto dma-names = "rx", "tx"; 1575cf4f686SKuninori Morimoto }; 15890e8e50fSKuninori Morimoto }; 15990e8e50fSKuninori Morimoto 16090e8e50fSKuninori Morimoto rcar_sound,ssi { 16190e8e50fSKuninori Morimoto ssi0: ssi@0 { 16290e8e50fSKuninori Morimoto interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 163e80a2fb1SKuninori Morimoto dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 164e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 16590e8e50fSKuninori Morimoto }; 16690e8e50fSKuninori Morimoto ssi1: ssi@1 { 16790e8e50fSKuninori Morimoto interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 168e80a2fb1SKuninori Morimoto dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 169e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 17090e8e50fSKuninori Morimoto }; 17190e8e50fSKuninori Morimoto ssi2: ssi@2 { 17290e8e50fSKuninori Morimoto interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; 173e80a2fb1SKuninori Morimoto dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 174e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 17590e8e50fSKuninori Morimoto }; 17690e8e50fSKuninori Morimoto ssi3: ssi@3 { 17790e8e50fSKuninori Morimoto interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; 178e80a2fb1SKuninori Morimoto dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 179e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 18090e8e50fSKuninori Morimoto }; 18190e8e50fSKuninori Morimoto ssi4: ssi@4 { 18290e8e50fSKuninori Morimoto interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; 183e80a2fb1SKuninori Morimoto dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 184e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 18590e8e50fSKuninori Morimoto }; 18690e8e50fSKuninori Morimoto ssi5: ssi@5 { 18790e8e50fSKuninori Morimoto interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; 188e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 189e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 19090e8e50fSKuninori Morimoto }; 19190e8e50fSKuninori Morimoto ssi6: ssi@6 { 19290e8e50fSKuninori Morimoto interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; 193e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 194e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 19590e8e50fSKuninori Morimoto }; 19690e8e50fSKuninori Morimoto ssi7: ssi@7 { 19790e8e50fSKuninori Morimoto interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; 198e80a2fb1SKuninori Morimoto dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 199e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 20090e8e50fSKuninori Morimoto }; 20190e8e50fSKuninori Morimoto ssi8: ssi@8 { 20290e8e50fSKuninori Morimoto interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 203e80a2fb1SKuninori Morimoto dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 204e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 20590e8e50fSKuninori Morimoto }; 20690e8e50fSKuninori Morimoto ssi9: ssi@9 { 20790e8e50fSKuninori Morimoto interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 208e80a2fb1SKuninori Morimoto dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 209e80a2fb1SKuninori Morimoto dma-names = "rx", "tx", "rxu", "txu"; 21090e8e50fSKuninori Morimoto }; 21190e8e50fSKuninori Morimoto }; 21290e8e50fSKuninori Morimoto 21390e8e50fSKuninori Morimoto rcar_sound,dai { 21490e8e50fSKuninori Morimoto dai0 { 21590e8e50fSKuninori Morimoto playback = <&ssi5 &src5>; 21690e8e50fSKuninori Morimoto capture = <&ssi6>; 21790e8e50fSKuninori Morimoto }; 21890e8e50fSKuninori Morimoto dai1 { 21990e8e50fSKuninori Morimoto playback = <&ssi3>; 22090e8e50fSKuninori Morimoto }; 22190e8e50fSKuninori Morimoto dai2 { 22290e8e50fSKuninori Morimoto capture = <&ssi4>; 22390e8e50fSKuninori Morimoto }; 22490e8e50fSKuninori Morimoto dai3 { 22590e8e50fSKuninori Morimoto playback = <&ssi7>; 22690e8e50fSKuninori Morimoto }; 22790e8e50fSKuninori Morimoto dai4 { 22890e8e50fSKuninori Morimoto capture = <&ssi8>; 22990e8e50fSKuninori Morimoto }; 23090e8e50fSKuninori Morimoto }; 23190e8e50fSKuninori Morimoto}; 232