Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: r8a7742-iwg21d-q7: Sound DMA support via DVC on DTS

Enable sound with DMA support on carrier board.

DMA transfer uses DVC

DMA DMApp
[MEM] -> [SRC] -> [DVC] -> [SSIU] -> [SSI]

DMA DMApp
[MEM] <- [DVC] <- [SRC] <- [SSIU] <- [SSI]

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com>
Link: https://lore.kernel.org/r/1590611013-26029-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

authored by

Lad Prabhakar and committed by
Geert Uytterhoeven
fc3a1b27 43676501

+63
+63
arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
··· 5 5 * Copyright (C) 2020 Renesas Electronics Corp. 6 6 */ 7 7 8 + /* 9 + * SSI-SGTL5000 10 + * 11 + * This command is required when Playback/Capture 12 + * 13 + * amixer set "DVC Out" 100% 14 + * amixer set "DVC In" 100% 15 + * 16 + * You can use Mute 17 + * 18 + * amixer set "DVC Out Mute" on 19 + * amixer set "DVC In Mute" on 20 + * 21 + * You can use Volume Ramp 22 + * 23 + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 24 + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 25 + * amixer set "DVC Out Ramp" on 26 + * aplay xxx.wav & 27 + * amixer set "DVC Out" 80% // Volume Down 28 + * amixer set "DVC Out" 100% // Volume Up 29 + */ 30 + 8 31 /dts-v1/; 9 32 #include "r8a7742-iwg21m.dtsi" 10 33 ··· 58 35 regulator-min-microvolt = <1500000>; 59 36 regulator-max-microvolt = <1500000>; 60 37 regulator-always-on; 38 + }; 39 + 40 + rsnd_sgtl5000: sound { 41 + compatible = "simple-audio-card"; 42 + simple-audio-card,format = "i2s"; 43 + simple-audio-card,bitclock-master = <&sndcodec>; 44 + simple-audio-card,frame-master = <&sndcodec>; 45 + 46 + sndcpu: simple-audio-card,cpu { 47 + sound-dai = <&rcar_sound>; 48 + }; 49 + 50 + sndcodec: simple-audio-card,codec { 51 + sound-dai = <&sgtl5000>; 52 + }; 61 53 }; 62 54 63 55 vcc_sdhi2: regulator-vcc-sdhi2 { ··· 163 125 function = "sdhi2"; 164 126 power-source = <1800>; 165 127 }; 128 + 129 + sound_pins: sound { 130 + groups = "ssi34_ctrl", "ssi3_data", "ssi4_data"; 131 + function = "ssi"; 132 + }; 133 + }; 134 + 135 + &rcar_sound { 136 + pinctrl-0 = <&sound_pins>; 137 + pinctrl-names = "default"; 138 + status = "okay"; 139 + 140 + /* Single DAI */ 141 + #sound-dai-cells = <0>; 142 + 143 + rcar_sound,dai { 144 + dai0 { 145 + playback = <&ssi4 &src4 &dvc1>; 146 + capture = <&ssi3 &src3 &dvc0>; 147 + }; 148 + }; 166 149 }; 167 150 168 151 &rwdt { ··· 217 158 wp-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; 218 159 sd-uhs-sdr50; 219 160 status = "okay"; 161 + }; 162 + 163 + &ssi4 { 164 + shared-pin; 220 165 };