31,6 → 31,9 |
#include <linux/module.h> |
#include <linux/i2c-id.h> |
#include <linux/mod_devicetable.h> |
#include <linux/sched.h> /* for completion */ |
#include <linux/mutex.h> |
#include <linux/jiffies.h> |
|
extern struct bus_type i2c_bus_type; |
extern struct device_type i2c_adapter_type; |
139,6 → 142,8 |
* @irq: indicates the IRQ generated by this device (if any) |
* @detected: member of an i2c_driver.clients list or i2c-core's |
* userspace_devices list |
* @slave_cb: Callback when I2C slave mode of an adapter is used. The adapter |
* calls it to pass on slave events to the slave driver. |
* |
* An i2c_client identifies a single device (i.e. chip) connected to an |
* i2c bus. The behaviour exposed to Linux is defined by the driver |
160,6 → 165,13 |
extern struct i2c_client *i2c_verify_client(struct device *dev); |
extern struct i2c_adapter *i2c_verify_adapter(struct device *dev); |
|
enum i2c_slave_event { |
I2C_SLAVE_REQ_READ_START, |
I2C_SLAVE_REQ_READ_END, |
I2C_SLAVE_REQ_WRITE_START, |
I2C_SLAVE_REQ_WRITE_END, |
I2C_SLAVE_STOP, |
}; |
/** |
* struct i2c_board_info - template for device creation |
* @type: chip type, to initialize i2c_client.name |
210,7 → 222,7 |
* to name two of the most common. |
* |
* The return codes from the @master_xfer field should indicate the type of |
* error code that occured during the transfer, as documented in the kernel |
* error code that occurred during the transfer, as documented in the kernel |
* Documentation file Documentation/i2c/fault-codes. |
*/ |
struct i2c_algorithm { |
230,6 → 242,12 |
u32 (*functionality) (struct i2c_adapter *); |
}; |
|
int i2c_recover_bus(struct i2c_adapter *adap); |
|
/* Generic recovery routines */ |
int i2c_generic_gpio_recovery(struct i2c_adapter *adap); |
int i2c_generic_scl_recovery(struct i2c_adapter *adap); |
|
/* |
* i2c_adapter is the structure used to identify a physical i2c bus along |
* with the access algorithms necessary to access it. |