diff options
author | Tom Rini <trini@konsulko.com> | 2015-03-18 07:07:36 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-03-18 07:07:36 -0400 |
commit | 8c8dc4c61518124eb35f4dd9d8466378ba247e9c (patch) | |
tree | 005649bad56752594455498ba3830623368b8dcb /drivers | |
parent | d283a5709d8e2bf2682a2e22fb81a47b8d53c111 (diff) | |
parent | f582a1583b2c7ae91737f3b1a0b850e7f4ef68bb (diff) | |
download | u-boot-8c8dc4c61518124eb35f4dd9d8466378ba247e9c.zip u-boot-8c8dc4c61518124eb35f4dd9d8466378ba247e9c.tar.gz u-boot-8c8dc4c61518124eb35f4dd9d8466378ba247e9c.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-i2c
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/i2c/mv_i2c.c | 2 | ||||
-rw-r--r-- | drivers/i2c/mvtwsi.c | 17 |
2 files changed, 10 insertions, 9 deletions
diff --git a/drivers/i2c/mv_i2c.c b/drivers/i2c/mv_i2c.c index e65cce0..fc02e65 100644 --- a/drivers/i2c/mv_i2c.c +++ b/drivers/i2c/mv_i2c.c @@ -73,7 +73,7 @@ static void i2c_board_init(struct mv_i2c *base) } #ifdef CONFIG_I2C_MULTI_BUS -static u32 i2c_regs[CONFIG_MV_I2C_NUM] = CONFIG_MV_I2C_REG; +static unsigned long i2c_regs[CONFIG_MV_I2C_NUM] = CONFIG_MV_I2C_REG; static unsigned int bus_initialized[CONFIG_MV_I2C_NUM]; static unsigned int current_bus; diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c index 9b2ca1e..6f6edd5 100644 --- a/drivers/i2c/mvtwsi.c +++ b/drivers/i2c/mvtwsi.c @@ -228,13 +228,14 @@ static int twsi_stop(int status) return status; } -/* - * Ugly formula to convert m and n values to a frequency comes from - * TWSI specifications - */ - -#define TWSI_FREQUENCY(m, n) \ - (CONFIG_SYS_TCLK / (10 * (m + 1) * (1 << n))) +static unsigned int twsi_calc_freq(const int n, const int m) +{ +#ifdef CONFIG_SUNXI + return CONFIG_SYS_TCLK / (10 * (m + 1) * (1 << n)); +#else + return CONFIG_SYS_TCLK / (10 * (m + 1) * (2 << n)); +#endif +} /* * Reset controller. @@ -266,7 +267,7 @@ static unsigned int twsi_i2c_set_bus_speed(struct i2c_adapter *adap, /* compute m, n setting for highest speed not above requested speed */ for (n = 0; n < 8; n++) { for (m = 0; m < 16; m++) { - tmp_speed = TWSI_FREQUENCY(m, n); + tmp_speed = twsi_calc_freq(n, m); if ((tmp_speed <= requested_speed) && (tmp_speed > highest_speed)) { highest_speed = tmp_speed; |