mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 06:31:31 +00:00
Merge branch 'master' of git://git.denx.de/u-boot-i2c
This commit is contained in:
commit
8c8dc4c615
2 changed files with 10 additions and 9 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue