From: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> Other Gen3 SoCs do this in the bootloader. Maybe R-Car V3U and S4-8 will also later? For now, add it so we can properly reboot via remote. Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> [geert: Generalize for R-Car Gen4] Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> --- Not intended for upstream merge. v2: - Generalize for R-Car Gen4 --- drivers/soc/renesas/rcar-rst.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/soc/renesas/rcar-rst.c b/drivers/soc/renesas/rcar-rst.c index 4d293eb2d8f315d9..c9f2910361255fc5 100644 --- a/drivers/soc/renesas/rcar-rst.c +++ b/drivers/soc/renesas/rcar-rst.c @@ -12,6 +12,7 @@ #define WDTRSTCR_RESET 0xA55A0002 #define WDTRSTCR 0x0054 +#define GEN4_WDTRSTCR 0x0010 #define CR7BAR 0x0070 #define CR7BAREN BIT(4) @@ -27,6 +28,12 @@ static int rcar_rst_enable_wdt_reset(void __iomem *base) return 0; } +static int rcar_rst_gen4_enable_wdt_reset(void __iomem *base) +{ + iowrite32(WDTRSTCR_RESET, base + GEN4_WDTRSTCR); + return 0; +} + /* * Most of the R-Car Gen3 SoCs have an ARM Realtime Core. * Firmware boot address has to be set in CR7BAR before @@ -68,6 +75,7 @@ static const struct rst_config rcar_rst_gen3 __initconst = { static const struct rst_config rcar_rst_gen4 __initconst = { .modemr = 0x00, /* MODEMR0 and it has CPG related bits */ + .configure = rcar_rst_gen4_enable_wdt_reset, }; static const struct of_device_id rcar_rst_matches[] __initconst = { -- 2.25.1