diff mbox series

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

Message ID 8e5f14d720f6462fbbcd2caed26c57f1d81166bb.1623315732.git.geert+renesas@glider.be (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
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 },
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 },