Re: [PATCH v5 3/4] wdt: Support wdt on ROHM BD9576MUF and BD9573MUF

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/11/20 6:01 AM, Vaittinen, Matti wrote:
> On Thu, 2020-11-05 at 13:38 +0200, Matti Vaittinen wrote:
>> Add Watchdog support for ROHM BD9576MUF and BD9573MUF PMICs which are
>> mainly used to power the R-Car series processors. The watchdog is
>> pinged using a GPIO and enabled using another GPIO. Additionally
>> watchdog time-out can be configured to HW prior starting the
>> watchdog.
>> Watchdog timeout can be configured to detect only delayed ping or in
>> a window mode where also too fast pings are detected.
>>
>> Signed-off-by: Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>
>> Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>
>> ---
>>
> 
> //snip
> 
>> +	ret = of_property_read_variable_u32_array(np, "rohm,hw-timeout-
>> ms",
>> +						  &hw_margin[0], 1, 2);
>> +	if (ret < 0 && ret != -EINVAL)
>> +		return ret;
>> +
>> +	if (ret == 1)
>> +		hw_margin_max = hw_margin[0];
>> +
>> +	if (ret == 2) {
>> +		hw_margin_max = hw_margin[1];
>> +		hw_margin_min = hw_margin[0];
>> +	}
>> +
>> +	ret = bd957x_set_wdt_mode(priv, hw_margin_max, hw_margin_min);
>> +	if (ret)
>> +		return ret;
>> +
>> +	priv->always_running = of_property_read_bool(np, "always-
>> running");
>> +
>> +	watchdog_set_drvdata(&priv->wdd, priv);
>> +
>> +	priv->wdd.info			= &bd957x_wdt_ident;
>> +	priv->wdd.ops			= &bd957x_wdt_ops;
>> +	priv->wdd.min_hw_heartbeat_ms	= hw_margin_min;
>> +	priv->wdd.max_hw_heartbeat_ms	= hw_margin_max;
>> +	priv->wdd.parent		= dev;
>> +	priv->wdd.timeout		= (hw_margin_max / 2) * 1000;
> 
> Hmm. Just noticed this value does not make sense, right?
> Maximum hw_margin is 4416 ms. If I read this correctly timeout should
> be in seconds -  so result is around 2 000 000 seconds here. I think it
> is useless value...
> 
> Perhaps
> 	priv->wdd.timeout		= (hw_margin_max / 2) / 1000;
> 	if (!priv->wdd.timeout)
> 		priv->wdd.timeout = 1;
> would be more appropriate.
> 

Yes. Good catch. Actually, since max_hw_heartbeat_ms is specified,
it can and should be a reasonable constant (like the usual 30 seconds).
It does not and should not be bound by max_hw_heartbeat_ms.

> I need to do some testing when I get the HW at my hands - please don't
> apply this patch just yet. I will respin this after some testing - or
> if other patches are applied then I will just send this one alone.
> 
> Sorry for the hassle...
> 
No worries. Thanks for noticing.

Guenter

> --Matti
> 
> --
> Matti Vaittinen, Linux device drivers
> ROHM Semiconductors, Finland SWDC
> Kiviharjunlenkki 1E
> 90220 OULU
> FINLAND
> 
> ~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
> 
> Simon says - in Latin please.
> "non cogito me" dixit Rene Descarte, deinde evanescavit
> 
> (Thanks for the translation Simon)
> 




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux