i2c:mxc fix array size of i2c_data
We should not hardcode array size of i2c_data to 3. To CONFIG_FSL_LSCH3, there are 4 i2c interface, but not 3. So the size of i2c_data array should be calculated using "ARRAY_SIZE(i2c_bases)". To avoid compile error, move i2c_bases before sram_data structure which contains i2c_data array. Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
This commit is contained in:
parent
5ea0196164
commit
c36ecf3abf
@ -402,17 +402,6 @@ int bus_i2c_write(void *base, uchar chip, uint addr, int alen,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct i2c_parms {
|
|
||||||
void *base;
|
|
||||||
void *idle_bus_data;
|
|
||||||
int (*idle_bus_fn)(void *p);
|
|
||||||
};
|
|
||||||
|
|
||||||
struct sram_data {
|
|
||||||
unsigned curr_i2c_bus;
|
|
||||||
struct i2c_parms i2c_data[3];
|
|
||||||
};
|
|
||||||
|
|
||||||
static void * const i2c_bases[] = {
|
static void * const i2c_bases[] = {
|
||||||
#if defined(CONFIG_MX25)
|
#if defined(CONFIG_MX25)
|
||||||
(void *)IMX_I2C_BASE,
|
(void *)IMX_I2C_BASE,
|
||||||
@ -439,6 +428,17 @@ static void * const i2c_bases[] = {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct i2c_parms {
|
||||||
|
void *base;
|
||||||
|
void *idle_bus_data;
|
||||||
|
int (*idle_bus_fn)(void *p);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sram_data {
|
||||||
|
unsigned curr_i2c_bus;
|
||||||
|
struct i2c_parms i2c_data[ARRAY_SIZE(i2c_bases)];
|
||||||
|
};
|
||||||
|
|
||||||
void *i2c_get_base(struct i2c_adapter *adap)
|
void *i2c_get_base(struct i2c_adapter *adap)
|
||||||
{
|
{
|
||||||
return i2c_bases[adap->hwadapnr];
|
return i2c_bases[adap->hwadapnr];
|
||||||
|
Loading…
Reference in New Issue
Block a user