Prepare Prickly Pike Milestone 3
[AGL/meta-agl.git] / meta-agl-bsp / meta-rcar-gen3 / recipes-kernel / linux / files / 0004-ADSP-enable-and-add-sound-hardware-abstraction.patch
index 966b006..9c7f01b 100644 (file)
@@ -1,10 +1,13 @@
-The ADSP on Renesas SoCs required a reserved memory area to become
-enabled, and this needs to be done manually.
+From 274657edb779d77ad0fe5ccb52b51634d075adf8 Mon Sep 17 00:00:00 2001
+From: invalid_git config <unknown@unknown>
+Date: Wed, 6 Oct 2021 14:42:47 +0000
+Subject: [PATCH 2/2] The ADSP on Renesas SoCs required a reserved memory area
+ to become enabled, and this needs to be done manually.
 
 This patch adds sound hardware abstraction information for the m3ulcb
 and m3ulcb-kf (kingfisher) device trees. This is helpful on-board the
 ADSP for dynamically determining sound hardware at runtime, allowing
 
 This patch adds sound hardware abstraction information for the m3ulcb
 and m3ulcb-kf (kingfisher) device trees. This is helpful on-board the
 ADSP for dynamically determining sound hardware at runtime, allowing
-single binaries to be used between the two boards. 
+single binaries to be used between the two boards.
 
 Future work will incorporate the h3ulcb and Salvator boards into the
 abstraction.
 
 Future work will incorporate the h3ulcb and Salvator boards into the
 abstraction.
@@ -12,39 +15,66 @@ abstraction.
 Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
 Signed-off-by: Mark Farrugia <mark.farrugia@fiberdyne.com.au>
 ---
 Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
 Signed-off-by: Mark Farrugia <mark.farrugia@fiberdyne.com.au>
 ---
-diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
-index de2390f009e7..4ccfa8315d17 100644
---- a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
-+++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb-kf.dts
-@@ -15,6 +15,39 @@
-                     "renesas,r8a7796";
- };
+ arch/arm64/boot/dts/renesas/r8a77960-ulcb.dts | 45 ++++++++++++++++++-
+ arch/arm64/boot/dts/renesas/r8a77961-ulcb.dts | 45 ++++++++++++++++++-
+ 2 files changed, 88 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/renesas/r8a77960-ulcb.dts b/arch/arm64/boot/dts/renesas/r8a77960-ulcb.dts
+index fbc8c9af6e52..df3bd589d9bb 100644
+--- a/arch/arm64/boot/dts/renesas/r8a77960-ulcb.dts
++++ b/arch/arm64/boot/dts/renesas/r8a77960-ulcb.dts
+@@ -62,11 +62,18 @@ lossy_decompress: linux,lossy_decompress@54000000 {
+                       reg = <0x00000000 0x54000000 0x0 0x03000000>;
+               };
  
  
++              /* For Audio DSP */
++              adsp_reserved: linux,adsp {
++                      compatible = "shared-dma-pool";
++                      reusable;
++                      reg = <0x00000000 0x57000000 0x0 0x01000000>;
++              };
 +
 +
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma@57000000 {
+                       compatible = "shared-dma-pool";
+                       reusable;
+-                      reg = <0x00000000 0x57000000 0x0 0x19000000>;
++                      reg = <0x00000000 0x58000000 0x0 0x18000000>;
+                       linux,cma-default;
+               };
+@@ -126,6 +133,42 @@ &du {
+                     "dclkin.0", "dclkin.1", "dclkin.2";
+ };
 +&adsp {
 +&adsp {
++      status = "okay";
++      clock-frequency = <12288000 11289600>;
++      audio-clocks = <22579200 24576000>;
++      memory-region = <&adsp_reserved>;
 +
 +
-+      /* ADSP playback setting for pcm3168 */
++      /* ADSP playback setting for ak4613 */
 +      adsp_playback0: adsp,playback {
 +      adsp_playback0: adsp,playback {
-+              mode  = "tdm";
++              mode  = "i2s";
 +              clock-mode = "master";
 +              clock-mode = "master";
-+              bus-width = <24>;
-+              ssi = <3>;
++              bus-width = <16>;
++              ssi = <0>;
 +              bus-if = <0>;
 +              bus-if = <0>;
-+              channels = <8>;
-+              pin-share-ssi = <4>;
++              channels = <2>;
++              pin-share-ssi = <1>;
 +      };
 +
 +      };
 +
-+      /* ADSP capture setting for pcm3168 */
++      /* ADSP capture setting for ak4613 */
 +      adsp_capture0: adsp,capture {
 +      adsp_capture0: adsp,capture {
-+              mode  = "tdm";
++              mode  = "i2s";
 +              clock-mode = "slave";
 +              clock-mode = "slave";
-+              bus-width = <24>;
-+              ssi = <4>;
++              bus-width = <16>;
++              ssi = <1>;
 +              bus-if = <0>;
 +              bus-if = <0>;
-+              channels = <8>;
-+              pin-share-ssi = <3>;
++              channels = <2>;
++              pin-share-ssi = <0>;
 +      };
 +      };
-+
++      
 +      adsp,ports {
 +              port@0 {
 +                      playback = <&adsp_playback0>;
 +      adsp,ports {
 +              port@0 {
 +                      playback = <&adsp_playback0>;
@@ -53,14 +83,14 @@ index de2390f009e7..4ccfa8315d17 100644
 +      };
 +};
 +
 +      };
 +};
 +
- &du {
-        ports {
-                port@0 {
-diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
-index 1cd64c1b3b31..71e59da3528d 100644
---- a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
-+++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
-@@ -42,11 +42,18 @@
+ &vspb {
+       status = "okay";
+ };
+diff --git a/arch/arm64/boot/dts/renesas/r8a77961-ulcb.dts b/arch/arm64/boot/dts/renesas/r8a77961-ulcb.dts
+index e57dd7bb43f7..f583cc6c18bf 100644
+--- a/arch/arm64/boot/dts/renesas/r8a77961-ulcb.dts
++++ b/arch/arm64/boot/dts/renesas/r8a77961-ulcb.dts
+@@ -41,11 +41,18 @@ lossy_decompress: linux,lossy_decompress@54000000 {
                        reg = <0x00000000 0x54000000 0x0 0x03000000>;
                };
  
                        reg = <0x00000000 0x54000000 0x0 0x03000000>;
                };
  
@@ -80,7 +110,7 @@ index 1cd64c1b3b31..71e59da3528d 100644
                        linux,cma-default;
                };
  
                        linux,cma-default;
                };
  
-@@ -110,6 +117,42 @@
+@@ -89,6 +96,42 @@ &du {
                      "dclkin.0", "dclkin.1", "dclkin.2";
  };
  
                      "dclkin.0", "dclkin.1", "dclkin.2";
  };
  
@@ -123,3 +153,6 @@ index 1cd64c1b3b31..71e59da3528d 100644
  &vspb {
        status = "okay";
  };
  &vspb {
        status = "okay";
  };
+-- 
+2.31.1
+