1Renesas R-Car sound 2 3Required properties: 4- compatible : "renesas,rcar_sound-<soctype>", fallbacks 5 "renesas,rcar_sound-gen1" if generation1, and 6 "renesas,rcar_sound-gen2" if generation2 7 Examples with soctypes are: 8 - "renesas,rcar_sound-r8a7790" (R-Car H2) 9 - "renesas,rcar_sound-r8a7791" (R-Car M2-W) 10- reg : Should contain the register physical address. 11 required register is 12 SRU/ADG/SSI if generation1 13 SRU/ADG/SSIU/SSI if generation2 14- rcar_sound,ssi : Should contain SSI feature. 15 The number of SSI subnode should be same as HW. 16 see below for detail. 17- rcar_sound,src : Should contain SRC feature. 18 The number of SRC subnode should be same as HW. 19 see below for detail. 20- rcar_sound,dvc : Should contain DVC feature. 21 The number of DVC subnode should be same as HW. 22 see below for detail. 23- rcar_sound,dai : DAI contents. 24 The number of DAI subnode should be same as HW. 25 see below for detail. 26 27SSI subnode properties: 28- interrupts : Should contain SSI interrupt for PIO transfer 29- shared-pin : if shared clock pin 30- pio-transfer : use PIO transfer mode 31- no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case 32 33SRC subnode properties: 34no properties at this point 35 36DAI subnode properties: 37- playback : list of playback modules 38- capture : list of capture modules 39 40Example: 41 42rcar_sound: rcar_sound@ec500000 { 43 #sound-dai-cells = <1>; 44 compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; 45 reg = <0 0xec500000 0 0x1000>, /* SCU */ 46 <0 0xec5a0000 0 0x100>, /* ADG */ 47 <0 0xec540000 0 0x1000>, /* SSIU */ 48 <0 0xec541000 0 0x1280>; /* SSI */ 49 50 rcar_sound,dvc { 51 dvc0: dvc@0 { }; 52 dvc1: dvc@1 { }; 53 }; 54 55 rcar_sound,src { 56 src0: src@0 { }; 57 src1: src@1 { }; 58 src2: src@2 { }; 59 src3: src@3 { }; 60 src4: src@4 { }; 61 src5: src@5 { }; 62 src6: src@6 { }; 63 src7: src@7 { }; 64 src8: src@8 { }; 65 src9: src@9 { }; 66 }; 67 68 rcar_sound,ssi { 69 ssi0: ssi@0 { 70 interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; 71 }; 72 ssi1: ssi@1 { 73 interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; 74 }; 75 ssi2: ssi@2 { 76 interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; 77 }; 78 ssi3: ssi@3 { 79 interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; 80 }; 81 ssi4: ssi@4 { 82 interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; 83 }; 84 ssi5: ssi@5 { 85 interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; 86 }; 87 ssi6: ssi@6 { 88 interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; 89 }; 90 ssi7: ssi@7 { 91 interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; 92 }; 93 ssi8: ssi@8 { 94 interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; 95 }; 96 ssi9: ssi@9 { 97 interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; 98 }; 99 }; 100 101 rcar_sound,dai { 102 dai0 { 103 playback = <&ssi5 &src5>; 104 capture = <&ssi6>; 105 }; 106 dai1 { 107 playback = <&ssi3>; 108 }; 109 dai2 { 110 capture = <&ssi4>; 111 }; 112 dai3 { 113 playback = <&ssi7>; 114 }; 115 dai4 { 116 capture = <&ssi8>; 117 }; 118 }; 119}; 120