Re: [PATCH 2/2] [RFC] rtc: pcf2127: only use watchdog when explicitly available

From: Bruno Thomsen
Date: Sun Sep 27 2020 - 04:10:10 EST


Den tor. 24. sep. 2020 kl. 12.53 skrev Uwe Kleine-König
<u.kleine-koenig@xxxxxxxxxxxxxx>:
>
> Most boards using the pcf2127 chip (in my bubble) don't make use of the
> watchdog functionality and the respective output is not connected. The
> effect on such a board is that there is a watchdog device provided that
> doesn't work.
>
> So only register the watchdog if the device tree has a "has-watchdog"
> property.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> ---
> drivers/rtc/rtc-pcf2127.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/rtc/rtc-pcf2127.c b/drivers/rtc/rtc-pcf2127.c
> index 5b1f1949b5e5..8bd89d641578 100644
> --- a/drivers/rtc/rtc-pcf2127.c
> +++ b/drivers/rtc/rtc-pcf2127.c
> @@ -340,7 +340,8 @@ static int pcf2127_watchdog_init(struct device *dev, struct pcf2127 *pcf2127)
> u32 wdd_timeout;
> int ret;
>
> - if (!IS_ENABLED(CONFIG_WATCHDOG))
> + if (!IS_ENABLED(CONFIG_WATCHDOG) ||
> + !device_property_read_bool(dev, "has-watchdog"))
> return 0;

I don't think the compiler can remove the function if
CONFIG_WATCHDOG is disabled due to the device tree
value check. Maybe it can if split into 2 conditions.

if (!IS_ENABLED(CONFIG_WATCHDOG))
return 0;
if (!device_property_read_bool(dev, "has-watchdog"))
return 0;

/Bruno

>
> pcf2127->wdd.parent = dev;
> --
> 2.28.0
>