|
|
|
@ -589,6 +589,22 @@ static int bus_i2c_write(struct mxc_i2c_bus *i2c_bus, u8 chip, u32 addr, |
|
|
|
|
#define I2C4_BASE_ADDR 0 |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if !defined(I2C5_BASE_ADDR) |
|
|
|
|
#define I2C5_BASE_ADDR 0 |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if !defined(I2C6_BASE_ADDR) |
|
|
|
|
#define I2C6_BASE_ADDR 0 |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if !defined(I2C7_BASE_ADDR) |
|
|
|
|
#define I2C7_BASE_ADDR 0 |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if !defined(I2C8_BASE_ADDR) |
|
|
|
|
#define I2C8_BASE_ADDR 0 |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
static struct mxc_i2c_bus mxc_i2c_buses[] = { |
|
|
|
|
#if defined(CONFIG_ARCH_LS1021A) || defined(CONFIG_VF610) || \ |
|
|
|
|
defined(CONFIG_FSL_LAYERSCAPE) |
|
|
|
@ -596,11 +612,19 @@ static struct mxc_i2c_bus mxc_i2c_buses[] = { |
|
|
|
|
{ 1, I2C2_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
{ 2, I2C3_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
{ 3, I2C4_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
{ 4, I2C5_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
{ 5, I2C6_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
{ 6, I2C7_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
{ 7, I2C8_BASE_ADDR, I2C_QUIRK_FLAG }, |
|
|
|
|
#else |
|
|
|
|
{ 0, I2C1_BASE_ADDR, 0 }, |
|
|
|
|
{ 1, I2C2_BASE_ADDR, 0 }, |
|
|
|
|
{ 2, I2C3_BASE_ADDR, 0 }, |
|
|
|
|
{ 3, I2C4_BASE_ADDR, 0 }, |
|
|
|
|
{ 4, I2C5_BASE_ADDR, 0 }, |
|
|
|
|
{ 5, I2C6_BASE_ADDR, 0 }, |
|
|
|
|
{ 6, I2C7_BASE_ADDR, 0 }, |
|
|
|
|
{ 7, I2C8_BASE_ADDR, 0 }, |
|
|
|
|
#endif |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -738,6 +762,38 @@ U_BOOT_I2C_ADAP_COMPLETE(mxc3, mxc_i2c_init, mxc_i2c_probe, |
|
|
|
|
CONFIG_SYS_MXC_I2C4_SLAVE, 3) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_SYS_I2C_MXC_I2C5 |
|
|
|
|
U_BOOT_I2C_ADAP_COMPLETE(mxc4, mxc_i2c_init, mxc_i2c_probe, |
|
|
|
|
mxc_i2c_read, mxc_i2c_write, |
|
|
|
|
mxc_i2c_set_bus_speed, |
|
|
|
|
CONFIG_SYS_MXC_I2C5_SPEED, |
|
|
|
|
CONFIG_SYS_MXC_I2C5_SLAVE, 4) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_SYS_I2C_MXC_I2C6 |
|
|
|
|
U_BOOT_I2C_ADAP_COMPLETE(mxc5, mxc_i2c_init, mxc_i2c_probe, |
|
|
|
|
mxc_i2c_read, mxc_i2c_write, |
|
|
|
|
mxc_i2c_set_bus_speed, |
|
|
|
|
CONFIG_SYS_MXC_I2C6_SPEED, |
|
|
|
|
CONFIG_SYS_MXC_I2C6_SLAVE, 5) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_SYS_I2C_MXC_I2C7 |
|
|
|
|
U_BOOT_I2C_ADAP_COMPLETE(mxc6, mxc_i2c_init, mxc_i2c_probe, |
|
|
|
|
mxc_i2c_read, mxc_i2c_write, |
|
|
|
|
mxc_i2c_set_bus_speed, |
|
|
|
|
CONFIG_SYS_MXC_I2C7_SPEED, |
|
|
|
|
CONFIG_SYS_MXC_I2C7_SLAVE, 6) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_SYS_I2C_MXC_I2C8 |
|
|
|
|
U_BOOT_I2C_ADAP_COMPLETE(mxc7, mxc_i2c_init, mxc_i2c_probe, |
|
|
|
|
mxc_i2c_read, mxc_i2c_write, |
|
|
|
|
mxc_i2c_set_bus_speed, |
|
|
|
|
CONFIG_SYS_MXC_I2C8_SPEED, |
|
|
|
|
CONFIG_SYS_MXC_I2C8_SLAVE, 7) |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
|
|
static int mxc_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) |
|
|
|
|