| Renesas R-Car sound |
| |
| Required properties: |
| - compatible : "renesas,rcar_sound-<soctype>", fallbacks |
| "renesas,rcar_sound-gen1" if generation1, and |
| "renesas,rcar_sound-gen2" if generation2 |
| Examples with soctypes are: |
| - "renesas,rcar_sound-r8a7790" (R-Car H2) |
| - "renesas,rcar_sound-r8a7791" (R-Car M2-W) |
| - reg : Should contain the register physical address. |
| required register is |
| SRU/ADG/SSI if generation1 |
| SRU/ADG/SSIU/SSI if generation2 |
| - rcar_sound,ssi : Should contain SSI feature. |
| The number of SSI subnode should be same as HW. |
| see below for detail. |
| - rcar_sound,src : Should contain SRC feature. |
| The number of SRC subnode should be same as HW. |
| see below for detail. |
| - rcar_sound,dvc : Should contain DVC feature. |
| The number of DVC subnode should be same as HW. |
| see below for detail. |
| - rcar_sound,dai : DAI contents. |
| The number of DAI subnode should be same as HW. |
| see below for detail. |
| |
| SSI subnode properties: |
| - interrupts : Should contain SSI interrupt for PIO transfer |
| - shared-pin : if shared clock pin |
| - pio-transfer : use PIO transfer mode |
| - no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case |
| |
| SRC subnode properties: |
| no properties at this point |
| |
| DAI subnode properties: |
| - playback : list of playback modules |
| - capture : list of capture modules |
| |
| Example: |
| |
| rcar_sound: rcar_sound@ec500000 { |
| #sound-dai-cells = <1>; |
| compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; |
| reg = <0 0xec500000 0 0x1000>, /* SCU */ |
| <0 0xec5a0000 0 0x100>, /* ADG */ |
| <0 0xec540000 0 0x1000>, /* SSIU */ |
| <0 0xec541000 0 0x1280>; /* SSI */ |
| |
| rcar_sound,dvc { |
| dvc0: dvc@0 { }; |
| dvc1: dvc@1 { }; |
| }; |
| |
| rcar_sound,src { |
| src0: src@0 { }; |
| src1: src@1 { }; |
| src2: src@2 { }; |
| src3: src@3 { }; |
| src4: src@4 { }; |
| src5: src@5 { }; |
| src6: src@6 { }; |
| src7: src@7 { }; |
| src8: src@8 { }; |
| src9: src@9 { }; |
| }; |
| |
| rcar_sound,ssi { |
| ssi0: ssi@0 { |
| interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi1: ssi@1 { |
| interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi2: ssi@2 { |
| interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi3: ssi@3 { |
| interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi4: ssi@4 { |
| interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi5: ssi@5 { |
| interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi6: ssi@6 { |
| interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi7: ssi@7 { |
| interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi8: ssi@8 { |
| interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| ssi9: ssi@9 { |
| interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| }; |
| |
| rcar_sound,dai { |
| dai0 { |
| playback = <&ssi5 &src5>; |
| capture = <&ssi6>; |
| }; |
| dai1 { |
| playback = <&ssi3>; |
| }; |
| dai2 { |
| capture = <&ssi4>; |
| }; |
| dai3 { |
| playback = <&ssi7>; |
| }; |
| dai4 { |
| capture = <&ssi8>; |
| }; |
| }; |
| }; |