[RFC PATCH] watchdog: da9062: Correct the timeout values [Klartext]

Adam Thomson Adam.Thomson.Opensource at diasemi.com
Mon Dec 13 06:53:52 PST 2021


On 13 December 2021 09:11, Christoph Niedermaier wrote:

> Resend with [Klartext] to turn off TLS encryption.
>
> From: Adam Thomson
> Sent: Monday, December 6, 2021 5:38 PM
> >> Thanks anyway, so now I know it must be
> >> problem with my DA9061 chip.
> >>
> >> @Adam
> >> Where can it come from?
> >> Can you give we a hint what to check?
> >
> > I've spoken internally and have been informed that this is down to the fact that
> > DA9061 runs only from an internal oscillator which may be slower. The
> indication
> > is that the values for TWDSCALE describe the window where if a kick/ping
> occurs
> > within that period then the watchdog is guaranteed *not* to timeout. The
> actual
> > timeout would be at some point after the selected timeout period, assuming
> no
> > ping/kick occurred.
> >
> > Table 8 in the datasheet specifies a minimum watchdog timeout of 2.5s
> (tWDMAX)
> > under specific operating conditions, so if the minimum 2s window was chosen
> > (TWDSCALE = 1) then earliest the watchdog would actually timeout, following a
> > ping, is 2.5s, assuming the conditions matched those described.
> >
> > If you have further questions it probably makes sense to contact
> Dialog/Renesas
> > support as they will be able to provide more detailed info on this.
>
> So a DA9061 runs only from an internal oscillator, whereas a DA9062
> can run on either an internal or an external oscillator. So this
> means that the DA9061 timeout values are differ from the DA9062
> with an external oscillator not only on my device but on all DA9061
> devices.
>
> This are the values (in seconds) in comparison:
> DA9062 (from driver): 0  2  4   8  16  32  65 131
> DA9061 (measured):    0  3  6  12  25  51 102 204
> =================================================
> Difference:           0 +1 +2  +4  +9 +19 +37 +73
>
> In my opinion, the differences in the higher values are very huge.
> If I expect that the watchdog triggers and I have to wait more than
> a minute for that to happen I ask myself is there something wrong.
>
> @Andrej
> I guess, you are using an external oscillator, aren't you?
>
> @Adam
> Is there a way to check in the driver which oscillator is in use?

A quick scan of the DA9062 datasheet shows that reg/field EN_32K/CRYSTAL will
indicate the presence of a 32KHz crystal oscillator. Obviously on DA9061 that
option isn't available.

I think the problem seems to lie around determining the internal oscillator's
frequency. Datasheet references 25Mhz in Table 9 (Watchdog Electrical
Characteristics), but that doesn't seem to tally with your timings and I don't
see an obvious way in the regmap to calculate this at run time. *If* the
oscillator frequency varies from part to part, or under different environmental
conditions, then it's going to be tough to tie this down, and you wouldn't want
to state a timeout value that's longer than reality.


More information about the linux-arm-kernel mailing list