i2c: designware_i2c: Use an accurate bus clock instead of MHz
authorSimon Glass <sjg@chromium.org>
Thu, 23 Jan 2020 18:48:09 +0000 (11:48 -0700)
committerHeiko Schocher <hs@denx.de>
Mon, 27 Jan 2020 06:20:27 +0000 (07:20 +0100)
commitdd3c1602cf25b0be89d41d99ff33ef6d7d51f9f4
treec27f9d9f558b4ef17e86344fb3483fc91ef45405
parent65190d15efffc0c3700e59654ead4ef149981ad4
i2c: designware_i2c: Use an accurate bus clock instead of MHz

At present the driver uses an approximation for the bus clock, e.g. 166MHz
instead of 166 2/3 MHz.

This can result in small errors in the resulting I2C speed, perhaps 0.5%
or so.

Adjust the existing code to start from the accurate figure, even if later
rounding reduces this accuracy.

Update the bus speed code to work in KHz instead of MHz, which removes
most of the error.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
drivers/i2c/designware_i2c.c
drivers/i2c/designware_i2c.h