[PATCH v10 7/8] i2c: rk3x: add i2c support for rk3399 soc
From: dianders@chromium.org (Doug Anderson)
Date: 2016-05-16 17:22:45
Also in:
linux-devicetree, linux-i2c, linux-rockchip, lkml
From: dianders@chromium.org (Doug Anderson)
Date: 2016-05-16 17:22:45
Also in:
linux-devicetree, linux-i2c, linux-rockchip, lkml
David, On Mon, May 16, 2016 at 7:05 AM, David Wu [off-list ref] wrote:
- new method to caculate i2c timings for rk3399: There was an timing issue about "repeated start" time at the I2C controller of version0, controller appears to drop SDA at .875x (7/8) programmed clk high. On version 1 of the controller, the rule(.875x) isn't enough to meet tSU;STA requirements on 100k's Standard-mode. To resolve this issue, sda_update_config, start_setup_config and stop_setup_config for I2C timing information are added, new rules are designed to calculate the timing information at new v1. - pclk and function clk are separated at rk3399 Signed-off-by: David Wu <redacted> Tested-by: Caesar Wang <redacted> Tested-by: Heiko Stuebner <heiko@sntech.de> --- Change in v10: - fix the clean of con register in rk3x_i2c_stop() Change in v9: - add spin lock for tuning updated in rk3x_i2c_adapt_div() (Doug) Changes in v8: - update tuning in RKI2C_CON register by doing a read-modify-write (Doug) - new method to use pclk and clk (Doug) Changes in v7: - transform into a 9 series patches (Doug) - drop highspeed with mastercode, and support fast-mode plus (Doug) drivers/i2c/busses/i2c-rk3x.c | 294 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 274 insertions(+), 20 deletions(-)
Reviewed-by: Douglas Anderson <dianders@chromium.org>