@ -74,6 +74,49 @@ struct dm_i2c_bus {
int speed_hz ;
} ;
/*
* Not all of these flags are implemented in the U - Boot API
*/
enum dm_i2c_msg_flags {
I2C_M_TEN = 0x0010 , /* ten-bit chip address */
I2C_M_RD = 0x0001 , /* read data, from slave to master */
I2C_M_STOP = 0x8000 , /* send stop after this message */
I2C_M_NOSTART = 0x4000 , /* no start before this message */
I2C_M_REV_DIR_ADDR = 0x2000 , /* invert polarity of R/W bit */
I2C_M_IGNORE_NAK = 0x1000 , /* continue after NAK */
I2C_M_NO_RD_ACK = 0x0800 , /* skip the Ack bit on reads */
I2C_M_RECV_LEN = 0x0400 , /* length is first received byte */
} ;
/**
* struct i2c_msg - an I2C message
*
* @ addr : Slave address
* @ flags : Flags ( see enum dm_i2c_msg_flags )
* @ len : Length of buffer in bytes , may be 0 for a probe
* @ buf : Buffer to send / receive , or NULL if no data
*/
struct i2c_msg {
uint addr ;
uint flags ;
uint len ;
u8 * buf ;
} ;
/**
* struct i2c_msg_list - a list of I2C messages
*
* This is called i2c_rdwr_ioctl_data in Linux but the name does not seem
* appropriate in U - Boot .
*
* @ msg : Pointer to i2c_msg array
* @ nmsgs : Number of elements in the array
*/
struct i2c_msg_list {
struct i2c_msg * msgs ;
uint nmsgs ;
} ;
/**
* dm_i2c_read ( ) - read bytes from an I2C chip
*
@ -294,49 +337,6 @@ void i2c_reg_write(uint8_t addr, uint8_t reg, uint8_t val);
# endif
/*
* Not all of these flags are implemented in the U - Boot API
*/
enum dm_i2c_msg_flags {
I2C_M_TEN = 0x0010 , /* ten-bit chip address */
I2C_M_RD = 0x0001 , /* read data, from slave to master */
I2C_M_STOP = 0x8000 , /* send stop after this message */
I2C_M_NOSTART = 0x4000 , /* no start before this message */
I2C_M_REV_DIR_ADDR = 0x2000 , /* invert polarity of R/W bit */
I2C_M_IGNORE_NAK = 0x1000 , /* continue after NAK */
I2C_M_NO_RD_ACK = 0x0800 , /* skip the Ack bit on reads */
I2C_M_RECV_LEN = 0x0400 , /* length is first received byte */
} ;
/**
* struct i2c_msg - an I2C message
*
* @ addr : Slave address
* @ flags : Flags ( see enum dm_i2c_msg_flags )
* @ len : Length of buffer in bytes , may be 0 for a probe
* @ buf : Buffer to send / receive , or NULL if no data
*/
struct i2c_msg {
uint addr ;
uint flags ;
uint len ;
u8 * buf ;
} ;
/**
* struct i2c_msg_list - a list of I2C messages
*
* This is called i2c_rdwr_ioctl_data in Linux but the name does not seem
* appropriate in U - Boot .
*
* @ msg : Pointer to i2c_msg array
* @ nmsgs : Number of elements in the array
*/
struct i2c_msg_list {
struct i2c_msg * msgs ;
uint nmsgs ;
} ;
/**
* struct dm_i2c_ops - driver operations for I2C uclass
*