Hi Geert, On Friday, February 10, 2017, Geert Uytterhoeven wrote: > > static const char *const r7s72100_boards_compat_dt[] __initconst = { > > "renesas,r7s72100", > > NULL, > > @@ -29,4 +58,5 @@ DT_MACHINE_START(R7S72100_DT, "Generic R7S72100 > (Flattened Device Tree)") > > .init_early = shmobile_init_delay, > > .init_late = shmobile_init_late, > > .dt_compat = r7s72100_boards_compat_dt, > > + .restart = r7s72100_restart, > > MACHINE_END > > Perhaps unsurprisingly, I'd recommend writing a watchdog driver instead. > drivers/watchdog/renesas_wdt.c (currently supporting R-Car Gen3 only) may > serve as an example. Why do you guys always make things more difficult for me... ;) To be clear, you are recommending I make a WDT timer driver (and not use .restart) and that will reset the system? Or, make a WDT driver just so I can steal the base address? Note that the WDT timeout for the RZ/A1 is too short in my opinion, so it's really only good for resetting the system. > From an earlier discussion during development of that driver: > > | The RWDT exists on various Renesas SoCs. > | From digging into the datasheets, I had discovered two variants a while > go: > | 1. 32-bit registers > | a. R-Car Gen2: using RST for restarting > | b. R-Mobile APE6: using SYSC for restarting > | 2. 8-bit registers (SH-Mobile AP4/AG5, R-Mobile A1) > | > | The differences are small: the variant with 8-bit registers has a > | smaller maximum timeout, and no magic value to be stored in the upper > bits. > | > | Wolfram discovered the third variant in RZ/A1H, which differs in > | register layout. > > IIRC, apart from the different register layout, actual operation on RZ/A1H > is similar to other Renesas SoCs. Depending on the differences, you may > decide to write a new driver instead, though. More or less they all do the same thing (all only have 3 registers). I guess the decision comes down to since the file name is already "renesas_wdt.c", do we just make the 1 file work for all Renesas SoC and not add yet another file. It is only 3 registers we're talking about...it's not like it's going to turn into another sh_pfc.c file. Question: R-Car Gen 3 has 3 watchdog timers: 1. RCLK watchdog timer (RWDT) 2. Window Watchdog Timer (WWDT) 3. System Watchdog #1 and #3 look like they are the same thing (except #3 is enabled on power on reset). The renesas_wdt.c uses the register names from #1. Is the idea that you only use #3 to make sure your systems boots and get into Linux, then from there you use #1 and stop #3 (hence no driver is needed)? I don’t see the point of having an "overflow interrupt" enabled if the system is going to reset regardless. Chris