i2c: mxs: fix broken timing calculation
authorLothar Waßmann <LW@KARO-electronics.de>
Fri, 5 Jul 2013 16:28:00 +0000 (18:28 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Fri, 16 Aug 2013 16:09:05 +0000 (18:09 +0200)
commit869c6a3ededbb108b03a11a7c9d4c8a4fb607063
tree428951cc716dc7ea6fd131314f40e1ec872ac35d
parentb7d12a8667d78ba340829280da8ff62d3b733664
i2c: mxs: fix broken timing calculation

The timing calculation is rather bogus and gives extremely wrong
results for higher frequencies (on an i.MX28). E.g. instead of 400 kHz
I measured 770 kHz.

Implement a calculation that adheres to the I2C spec and gives exact
results for I2C frequencies from 12.56 kHz to 960 kHz.

Also the bus_free and leadin parameters are programmed according to
the I2C spec for standard and fast mode.

This was tested on a Ka-Ro TX28 module with a DS1339, TSC2007, PCA9554
and SGTL5000 client.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Acked-by: Marek Vasut <marex@denx.de>
[wsa: patch fixes whitespace issue, too]
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-mxs.c