ARM: dts: r8a7742-iwg21d-q7: Sound DMA support via DVC on DTS
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Wed, 27 May 2020 20:23:33 +0000 (21:23 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 15 Jun 2020 08:28:46 +0000 (10:28 +0200)
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>
arch/arm/boot/dts/r8a7742-iwg21d-q7.dts

index ff4fca9..e90aaf1 100644 (file)
@@ -5,6 +5,29 @@
  * Copyright (C) 2020 Renesas Electronics Corp.
  */
 
+/*
+ * SSI-SGTL5000
+ *
+ * This command is required when Playback/Capture
+ *
+ *      amixer set "DVC Out" 100%
+ *      amixer set "DVC In" 100%
+ *
+ * You can use Mute
+ *
+ *      amixer set "DVC Out Mute" on
+ *      amixer set "DVC In Mute" on
+ *
+ * You can use Volume Ramp
+ *
+ *      amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
+ *      amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
+ *      amixer set "DVC Out Ramp" on
+ *      aplay xxx.wav &
+ *      amixer set "DVC Out"  80%  // Volume Down
+ *      amixer set "DVC Out" 100%  // Volume Up
+ */
+
 /dts-v1/;
 #include "r8a7742-iwg21m.dtsi"
 
                regulator-always-on;
        };
 
+       rsnd_sgtl5000: sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&sndcodec>;
+               simple-audio-card,frame-master = <&sndcodec>;
+
+               sndcpu: simple-audio-card,cpu {
+                       sound-dai = <&rcar_sound>;
+               };
+
+               sndcodec: simple-audio-card,codec {
+                       sound-dai = <&sgtl5000>;
+               };
+       };
+
        vcc_sdhi2: regulator-vcc-sdhi2 {
                compatible = "regulator-fixed";
 
                function = "sdhi2";
                power-source = <1800>;
        };
+
+       sound_pins: sound {
+               groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
+               function = "ssi";
+       };
+};
+
+&rcar_sound {
+       pinctrl-0 = <&sound_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       /* Single DAI */
+       #sound-dai-cells = <0>;
+
+       rcar_sound,dai {
+               dai0 {
+                       playback = <&ssi4 &src4 &dvc1>;
+                       capture = <&ssi3 &src3 &dvc0>;
+               };
+       };
 };
 
 &rwdt {
        sd-uhs-sdr50;
        status = "okay";
 };
+
+&ssi4 {
+       shared-pin;
+};