STRUCT 
I2C_BUS_RECOV(9) I2C and SMBus Subsystem STRUCT I2C_BUS_RECOV(9) NAME
struct_i2c_bus_recovery_info - I2C bus recovery information SYNOPSIS
struct i2c_bus_recovery_info { int (* recover_bus) (struct i2c_adapter *); int (* get_scl) (struct i2c_adapter *); void (* set_scl) (struct i2c_adapter *, int val); int (* get_sda) (struct i2c_adapter *); void (* prepare_recovery) (struct i2c_bus_recovery_info *bri); void (* unprepare_recovery) (struct i2c_bus_recovery_info *bri); int scl_gpio; int sda_gpio; }; MEMBERS
recover_bus Recover routine. Either pass driver's recover_bus routine, or i2c_generic_scl_recovery or i2c_generic_gpio_recovery. get_scl This gets current value of SCL line. Mandatory for generic SCL recovery. Used internally for generic GPIO recovery. set_scl This sets/clears SCL line. Mandatory for generic SCL recovery. Used internally for generic GPIO recovery. get_sda This gets current value of SDA line. Optional for generic SCL recovery. Used internally, if sda_gpio is a valid GPIO, for generic GPIO recovery. prepare_recovery This will be called before starting recovery. Platform may configure padmux here for SDA/SCL line or something else they want. unprepare_recovery This will be called after completing recovery. Platform may configure padmux here for SDA/SCL line or something else they want. scl_gpio gpio number of the SCL line. Only required for GPIO recovery. sda_gpio gpio number of the SDA line. Only required for GPIO recovery. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 STRUCT I2C_BUS_RECOV(9)