On 08/09/2011 01:40 PM, Robin Holt wrote:
On Tue, Aug 09, 2011 at 09:11:33AM +0200, Wolfgang Grandegger wrote:
quoted
quoted
+ return &p1010_rdb_system_clock;
Just returning fsl_get_sys_freq() here would already be fine. I'm also
missing the factor of two here:
return fsl_get_sys_freq() / 2; ????
I am working on the other comments right now as well, but this one
brought up a good question. The old algorithm in the original freescale
patches I started with actually did, essentially:
...clock.freq = DIV_ROUND_CLOSEST(fsl_get_sys_freq() / 2, 1000) * 1000
The end result was before:
...clock.freq=0x0bebc200
That's exactly 200 MHz
After:
...clock.freq=0x0bebc1fe
this is 199 999 998 Hz
Is that rounding relavent?
_If_ 200 MHz is correct, this would be an error of 0.000001%. But the
fsl code rounds to closest KHz. Rounding introduces errors in most of
the cases. IMHO it's better not to round here.
For example the usual at91can is clocked with 99.532800 MHz, this is a
least the value the arm clock framework reports.
Cheers, Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |