diff mbox series

[02/14] soc: renesas: Identify R-Car H3e-2G and M3e-2G

Message ID 8e5f14d720f6462fbbcd2caed26c57f1d81166bb.1623315732.git.geert+renesas@glider.be
State New
Headers show
Series arm64: renesas: Add support for R Car H3e 2G-and M3e-2G | expand

Commit Message

Geert Uytterhoeven June 10, 2021, 9:37 a.m. UTC
Add support for identifying the R-Car H3e-2G (R8A779M1) and R-Car M3e-2G
(R8A779M3) SoCs.

As these are different gradings of the already supported R-Car H3 ES3.0
(R8A77951) and M3-W+ (R8A77961) SoCs, support for them is enabled
through the existing ARCH_R8A77951 and ARCH_R8A77961 configuration
symbols.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Question: Should we drop fam_rcar_gen3e and soc_rcar_[hm]3e, and just
	  use the existing soc_rcar_h3 and soc_rcar_m3_w?
---
 drivers/soc/renesas/Kconfig       |  2 ++
 drivers/soc/renesas/renesas-soc.c | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

Comments

Laurent Pinchart June 14, 2021, 6:31 p.m. UTC | #1
Hi Geert,

Thank you for the patch.

On Thu, Jun 10, 2021 at 11:37:15AM +0200, Geert Uytterhoeven wrote:
> Add support for identifying the R-Car H3e-2G (R8A779M1) and R-Car M3e-2G

> (R8A779M3) SoCs.

> 

> As these are different gradings of the already supported R-Car H3 ES3.0

> (R8A77951) and M3-W+ (R8A77961) SoCs, support for them is enabled

> through the existing ARCH_R8A77951 and ARCH_R8A77961 configuration

> symbols.

> 

> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

> ---

> Question: Should we drop fam_rcar_gen3e and soc_rcar_[hm]3e, and just

> 	  use the existing soc_rcar_h3 and soc_rcar_m3_w?


I'd vote for that, as there's no functional difference in the code below
between fam_rcar_gen3e and fam_rcar_gen3.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>


> ---

>  drivers/soc/renesas/Kconfig       |  2 ++

>  drivers/soc/renesas/renesas-soc.c | 19 +++++++++++++++++++

>  2 files changed, 21 insertions(+)

> 

> diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig

> index 4fe0247189a615b0..089c7c50e3ca4c3b 100644

> --- a/drivers/soc/renesas/Kconfig

> +++ b/drivers/soc/renesas/Kconfig

> @@ -213,6 +213,7 @@ config ARCH_R8A77951

>  	help

>  	  This enables support for the Renesas R-Car H3 SoC (revisions 2.0 and

>  	  later).

> +	  This includes different gradings like R-Car H3e-2G.

>  

>  config ARCH_R8A77965

>  	bool "ARM64 Platform support for R-Car M3-N"

> @@ -234,6 +235,7 @@ config ARCH_R8A77961

>  	select SYSC_R8A77961

>  	help

>  	  This enables support for the Renesas R-Car M3-W+ SoC.

> +	  This includes different gradings like R-Car M3e-2G.

>  

>  config ARCH_R8A77980

>  	bool "ARM64 Platform support for R-Car V3H"

> diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c

> index 0f8eff4a641a21b7..2851fd9c44ce8e3f 100644

> --- a/drivers/soc/renesas/renesas-soc.c

> +++ b/drivers/soc/renesas/renesas-soc.c

> @@ -33,6 +33,11 @@ static const struct renesas_family fam_rcar_gen3 __initconst __maybe_unused = {

>  	.reg	= 0xfff00044,		/* PRR (Product Register) */

>  };

>  

> +static const struct renesas_family fam_rcar_gen3e __initconst __maybe_unused = {

> +	.name	= "R-Car Gen3e",

> +	.reg	= 0xfff00044,		/* PRR (Product Register) */

> +};

> +

>  static const struct renesas_family fam_rmobile __initconst __maybe_unused = {

>  	.name	= "R-Mobile",

>  	.reg	= 0xe600101c,		/* CCCR (Common Chip Code Register) */

> @@ -205,6 +210,16 @@ static const struct renesas_soc soc_rcar_v3u __initconst __maybe_unused = {

>  	.id	= 0x59,

>  };

>  

> +static const struct renesas_soc soc_rcar_h3e __initconst __maybe_unused = {

> +	.family	= &fam_rcar_gen3e,

> +	.id	= 0x4f,

> +};

> +

> +static const struct renesas_soc soc_rcar_m3e __initconst __maybe_unused = {

> +	.family	= &fam_rcar_gen3e,

> +	.id	= 0x52,

> +};

> +

>  static const struct renesas_soc soc_shmobile_ag5 __initconst __maybe_unused = {

>  	.family	= &fam_shmobile,

>  	.id	= 0x37,

> @@ -275,11 +290,15 @@ static const struct of_device_id renesas_socs[] __initconst = {

>  #if defined(CONFIG_ARCH_R8A77950) || defined(CONFIG_ARCH_R8A77951)

>  	{ .compatible = "renesas,r8a7795",	.data = &soc_rcar_h3 },

>  #endif

> +#ifdef CONFIG_ARCH_R8A77951

> +	{ .compatible = "renesas,r8a779m1",	.data = &soc_rcar_h3e },

> +#endif

>  #ifdef CONFIG_ARCH_R8A77960

>  	{ .compatible = "renesas,r8a7796",	.data = &soc_rcar_m3_w },

>  #endif

>  #ifdef CONFIG_ARCH_R8A77961

>  	{ .compatible = "renesas,r8a77961",	.data = &soc_rcar_m3_w },

> +	{ .compatible = "renesas,r8a779m3",	.data = &soc_rcar_m3e },

>  #endif

>  #ifdef CONFIG_ARCH_R8A77965

>  	{ .compatible = "renesas,r8a77965",	.data = &soc_rcar_m3_n },


-- 
Regards,

Laurent Pinchart
Yoshihiro Shimoda June 23, 2021, 10:13 a.m. UTC | #2
Hi Geert-san,

Thank you for the patch!

> From: Laurent Pinchart, Sent: Tuesday, June 15, 2021 3:31 AM

> 

> Hi Geert,

> 

> Thank you for the patch.

> 

> On Thu, Jun 10, 2021 at 11:37:15AM +0200, Geert Uytterhoeven wrote:

> > Add support for identifying the R-Car H3e-2G (R8A779M1) and R-Car M3e-2G

> > (R8A779M3) SoCs.

> >

> > As these are different gradings of the already supported R-Car H3 ES3.0

> > (R8A77951) and M3-W+ (R8A77961) SoCs, support for them is enabled

> > through the existing ARCH_R8A77951 and ARCH_R8A77961 configuration

> > symbols.

> >

> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

> > ---

> > Question: Should we drop fam_rcar_gen3e and soc_rcar_[hm]3e, and just

> > 	  use the existing soc_rcar_h3 and soc_rcar_m3_w?

> 

> I'd vote for that, as there's no functional difference in the code below

> between fam_rcar_gen3e and fam_rcar_gen3.


+1

If we add fam_rcar_gen3e, we need update some drivers [1] which
are using .family.

[1] drivers/iommu/ipmmu-vmsa.c and drivers/usb/host/ehci-platform.c.

Best regards,
Yoshihiro Shimoda
diff mbox series

Patch

diff --git a/drivers/soc/renesas/Kconfig b/drivers/soc/renesas/Kconfig
index 4fe0247189a615b0..089c7c50e3ca4c3b 100644
--- a/drivers/soc/renesas/Kconfig
+++ b/drivers/soc/renesas/Kconfig
@@ -213,6 +213,7 @@  config ARCH_R8A77951
 	help
 	  This enables support for the Renesas R-Car H3 SoC (revisions 2.0 and
 	  later).
+	  This includes different gradings like R-Car H3e-2G.
 
 config ARCH_R8A77965
 	bool "ARM64 Platform support for R-Car M3-N"
@@ -234,6 +235,7 @@  config ARCH_R8A77961
 	select SYSC_R8A77961
 	help
 	  This enables support for the Renesas R-Car M3-W+ SoC.
+	  This includes different gradings like R-Car M3e-2G.
 
 config ARCH_R8A77980
 	bool "ARM64 Platform support for R-Car V3H"
diff --git a/drivers/soc/renesas/renesas-soc.c b/drivers/soc/renesas/renesas-soc.c
index 0f8eff4a641a21b7..2851fd9c44ce8e3f 100644
--- a/drivers/soc/renesas/renesas-soc.c
+++ b/drivers/soc/renesas/renesas-soc.c
@@ -33,6 +33,11 @@  static const struct renesas_family fam_rcar_gen3 __initconst __maybe_unused = {
 	.reg	= 0xfff00044,		/* PRR (Product Register) */
 };
 
+static const struct renesas_family fam_rcar_gen3e __initconst __maybe_unused = {
+	.name	= "R-Car Gen3e",
+	.reg	= 0xfff00044,		/* PRR (Product Register) */
+};
+
 static const struct renesas_family fam_rmobile __initconst __maybe_unused = {
 	.name	= "R-Mobile",
 	.reg	= 0xe600101c,		/* CCCR (Common Chip Code Register) */
@@ -205,6 +210,16 @@  static const struct renesas_soc soc_rcar_v3u __initconst __maybe_unused = {
 	.id	= 0x59,
 };
 
+static const struct renesas_soc soc_rcar_h3e __initconst __maybe_unused = {
+	.family	= &fam_rcar_gen3e,
+	.id	= 0x4f,
+};
+
+static const struct renesas_soc soc_rcar_m3e __initconst __maybe_unused = {
+	.family	= &fam_rcar_gen3e,
+	.id	= 0x52,
+};
+
 static const struct renesas_soc soc_shmobile_ag5 __initconst __maybe_unused = {
 	.family	= &fam_shmobile,
 	.id	= 0x37,
@@ -275,11 +290,15 @@  static const struct of_device_id renesas_socs[] __initconst = {
 #if defined(CONFIG_ARCH_R8A77950) || defined(CONFIG_ARCH_R8A77951)
 	{ .compatible = "renesas,r8a7795",	.data = &soc_rcar_h3 },
 #endif
+#ifdef CONFIG_ARCH_R8A77951
+	{ .compatible = "renesas,r8a779m1",	.data = &soc_rcar_h3e },
+#endif
 #ifdef CONFIG_ARCH_R8A77960
 	{ .compatible = "renesas,r8a7796",	.data = &soc_rcar_m3_w },
 #endif
 #ifdef CONFIG_ARCH_R8A77961
 	{ .compatible = "renesas,r8a77961",	.data = &soc_rcar_m3_w },
+	{ .compatible = "renesas,r8a779m3",	.data = &soc_rcar_m3e },
 #endif
 #ifdef CONFIG_ARCH_R8A77965
 	{ .compatible = "renesas,r8a77965",	.data = &soc_rcar_m3_n },