summaryrefslogtreecommitdiffstats
path: root/README
blob: a7079d2197479e3edb462b27fc4932ee5313ac5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
OpenEmbedded/Yocto BSP layer for Renesas Electronics's SoCs
==========
This layer provides support for Renesas Electronics's platforms for use with
OpenEmbedded and/or Yocto.

Layer maintainers: Takeshi Saito <takeshi.saito.xv@renesas.com>
		   Stephen Lawrence <stephen.lawrence@renesas.com> (Genivi branches)

Supported Boards/Machines
=========================

In addition, this also provides layer that provides support board that is used
SoCs that Renesas build. Layer and board that supports following:

	* meta-rcar-gen2
	  - Renesas Electronics Corporation. Alt (R8A7794)
	  - Renesas Electronics Corporation. Gose (R8A7793)
	  - Renesas Electronics Corporation. Koelsch (R8A7791)
	  - Renesas Electronics Corporation. Lager (R8A7790)
	* meta-rmobile
	  - Atmark Techno, Inc. Armadillo-800 EVA (R8A7740)

Please see README in the layer directory about the description of the board.

Original BSP image
=========================
The meta-renesas layer provides original BSP image. The following 
	* core-image-x11
	* core-image-weston

Genivi
======

For details about using this BSP with Genivi platforms, including the Genivi Demo Platform
and Genivi Baselines, please see the Renesas R-Car links within the Genivi wiki [1]

[1] http://wiki.projects.genivi.org/index.php/Meta-ivi
#008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
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
single binaries to be used between the two boards. 

Future work will incorporate the h3ulcb and Salvator boards into the
abstraction.

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";
 };
 
+
+&adsp {
+
+	/* ADSP playback setting for pcm3168 */
+	adsp_playback0: adsp,playback {
+		mode  = "tdm";
+		clock-mode = "master";
+		bus-width = <24>;
+		ssi = <3>;
+		bus-if = <0>;
+		channels = <8>;
+		pin-share-ssi = <4>;
+	};
+
+	/* ADSP capture setting for pcm3168 */
+	adsp_capture0: adsp,capture {
+		mode  = "tdm";
+		clock-mode = "slave";
+		bus-width = <24>;
+		ssi = <4>;
+		bus-if = <0>;
+		channels = <8>;
+		pin-share-ssi = <3>;
+	};
+
+	adsp,ports {
+		port@0 {
+			playback = <&adsp_playback0>;
+			capture  = <&adsp_capture0>;
+		};
+	};
+};
+
 &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 @@
 			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;
 		};
 
@@ -110,6 +117,42 @@
 		      "dclkin.0", "dclkin.1", "dclkin.2";
 };
 
+&adsp {
+	status = "okay";
+	clock-frequency = <12288000 11289600>;
+	audio-clocks = <22579200 24576000>;
+	memory-region = <&adsp_reserved>;
+
+	/* ADSP playback setting for ak4613 */
+	adsp_playback0: adsp,playback {
+		mode  = "i2s";
+		clock-mode = "master";
+		bus-width = <16>;
+		ssi = <0>;
+		bus-if = <0>;
+		channels = <2>;
+		pin-share-ssi = <1>;
+	};
+
+	/* ADSP capture setting for ak4613 */
+	adsp_capture0: adsp,capture {
+		mode  = "i2s";
+		clock-mode = "slave";
+		bus-width = <16>;
+		ssi = <1>;
+		bus-if = <0>;
+		channels = <2>;
+		pin-share-ssi = <0>;
+	};
+	
+	adsp,ports {
+		port@0 {
+			playback = <&adsp_playback0>;
+			capture  = <&adsp_capture0>;
+		};
+	};
+};
+
 &vspb {
 	status = "okay";
 };