Hi Morimoto-san, On Mon, 14 Jul 2025 at 02:06, Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> wrote: > From: Duy Nguyen <duy.nguyen.rh@xxxxxxxxxxx> > > Add support for identifying the R-Car X5H SoC. > > [Kuninori: tidyup for upstreaming] > > Signed-off-by: Duy Nguyen <duy.nguyen.rh@xxxxxxxxxxx> > Signed-off-by: Huy Bui <huy.bui.wm@xxxxxxxxxxx> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> Thanks for your patch! > --- a/drivers/soc/renesas/Kconfig > +++ b/drivers/soc/renesas/Kconfig > @@ -39,6 +39,10 @@ config ARCH_RCAR_GEN4 > bool > select ARCH_RCAR_GEN3 > > +config ARCH_RCAR_GEN5 > + bool > + select ARCH_RCAR_GEN4 Note that this transitively enables four drivers: select RENESAS_IRQC select RST_RCAR select SYS_SUPPORTS_SH_CMT select SYS_SUPPORTS_SH_TMU R-Car X5H does have INTC-EX, CMT, and TMU, so enabling their drivers is fine. The registers to read the mode pins (the main functionality of the RST_RCAR driver) have been moved to a separate block (Operating Mode (OpeMode)) on R-Car X5H, so my first thought was to drop the RST_RCAR select. Fortunately OpeMode shares register space with the Reset Controller (RTSC) block, so we can keep that select. > + > config ARCH_RMOBILE > bool > select PM > --- a/drivers/soc/renesas/renesas-soc.c > +++ b/drivers/soc/renesas/renesas-soc.c > @@ -36,6 +36,11 @@ static const struct renesas_family fam_rcar_gen4 __initconst __maybe_unused = { > .name = "R-Car Gen4", > }; > > +static const struct renesas_family fam_rcar_gen5 __initconst __maybe_unused = { > + .name = "R-Car Gen5", > + .reg = 0xfff00044, /* PRR (Product Register) */ Please no hardcoded register addresses for new (DT-only) platforms (especially if they don't seem to be correct?). I can drop this line while applying. > +}; > + > static const struct renesas_family fam_rmobile __initconst __maybe_unused = { > .name = "R-Mobile", > .reg = 0xe600101c, /* CCCR (Common Chip Code Register) */ > @@ -378,6 +388,9 @@ static const struct of_device_id renesas_socs[] __initconst __maybe_unused = { > #ifdef CONFIG_ARCH_R8A779H0 > { .compatible = "renesas,r8a779h0", .data = &soc_rcar_v4m }, > #endif > +#ifdef CONFIG_ARCH_R8A78000 > + { .compatible = "renesas,r8a78000", .data = &soc_rcar_x5h }, scripts/checkpatch.pl: WARNING: DT compatible string "renesas,r8a78000" appears un-documented -- check ./Documentation/devicetree/bindings/ > +#endif > #ifdef CONFIG_ARCH_R9A07G043 > #ifdef CONFIG_RISCV > { .compatible = "renesas,r9a07g043", .data = &soc_rz_five }, Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> i.e. will queue in renesas-devel for v6.18, pending acceptance of the DT bindings. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds