Hi Geert,
On Friday, February 10, 2017, Geert Uytterhoeven wrote:
> Alternatively, you can write a restart driver (cfr.
> drivers/power/reset/rmobile-reset.c) that binds against a
> "renesas,r7s72100-wdt" device node, but doesn't implement watchdog
> functionality.
> You're gonna need DT bindings anyway.
I like that idea. That should take me no time at all.
Thank you.
Do you think I can still keep my 'weak function' idea in there??
extern void __attribute__ ((weak)) prepare_for_restart(void)
{
/* override to do board specific stuff */
}
static int renesas_wdt_reset_handler(struct notifier_block *this,
unsigned long mode, void *cmd)
{
pr_debug("%s %lu\n", __func__, mode);
prepare_for_restart();
/* set WDT for reset */
. . .
return NOTIFY_DONE;
}
Or...do you think I can just use the rmobile-reset.c driver and
just add WDT to it?
Honestly, the only thing different will be rmobile_reset_handler().
I could make a rmobile_wdt_reset_handler() and I could just pass in
a different notifier_block depending on the DT.
What do you think?
static const struct of_device_id rmobile_reset_of_match[] = {
{ .compatible = "renesas,sysc-rmobile", },
{ .compatible = "renesas,wdt-rmobile", },
{ /* sentinel */ }
};
Chris