Re: [RFC+PATCH] RTC calibration

Dag-Erling Smørgrav
2007-09-11T15:02:22Z

Clemens Koller <clemens.koller@anagramm.de> writes:
> It looks odd to me to do only differential up and down adjustments.
> I would prefer read_calibration_register and write_calibration_register
> access and let the userspace decide how much it wants to
> increment/decrement the register.

Without knowing exacly which chip is present, there is no way for the
userland calibration tool to know how big a difference a calibration
step makes. I don't see the value in telling the caller that the
current calibration value is N when it actually has no idea what N
means, what the allowable range is, if the scale is linear,
logarithmic, exponential, discontinuous...

The M41T11, for instance, has a calibration register that runs from
-31 to +31, with negative values are multiples of ~2.034 ppm while
positive values are multiples of ~4.068 ppm.

Therefore, I prefer to leave it to the driver author to decide what a
reasonable step in either direction is. The only consequence for the
userland calibration tool is that the RTC may take longer to converge
on hardware that has smaller calibration steps.

> Or - do you adjust your date also after you changed your battery
> with +1567days,7h,34m,12sec instead of telling it's 11th Sept. 2007, 4:33pm ?

No, the calibration process should start by setting the RTC to the
same time as the reference clock once it becomes available, then
waiting for a sufficient amount of time (at least three or four hours
to begin with, then progressively longer as the divergence decreases)
before measuring and adjusting.

Alternatively, if you don't want to set the RTC, you measure the
delta, wait sufficiently long, measure the delta again, and compare
the two deltas (this method is actually exactly the same as the one
outlined above, except that above the initial delta is 0)