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@xxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxx> > --- > 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