aboutsummaryrefslogtreecommitdiff
path: root/include/linux/i2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/i2c.h')
-rw-r--r--include/linux/i2c.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index e988fa935b3..3a16b71d9fd 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -423,6 +423,9 @@ struct i2c_adapter {
int retries;
struct device dev; /* the adapter device */
+ bool cancel_xfer_on_shutdown;
+ bool atomic_xfer_only;
+
int nr;
char name[48];
struct completion dev_released;
@@ -460,6 +463,8 @@ int i2c_for_each_dev(void *data, int (*fn)(struct device *, void *));
/* Adapter locking functions, exported for shared pin cases */
void i2c_lock_adapter(struct i2c_adapter *);
void i2c_unlock_adapter(struct i2c_adapter *);
+void i2c_shutdown_adapter(struct i2c_adapter *adapter);
+void i2c_shutdown_clear_adapter(struct i2c_adapter *adapter);
/*flags for the client struct: */
#define I2C_CLIENT_PEC 0x04 /* Use Packet Error Checking */
@@ -548,4 +553,18 @@ extern void acpi_i2c_register_devices(struct i2c_adapter *adap);
static inline void acpi_i2c_register_devices(struct i2c_adapter *adap) {}
#endif
+/* Bus clear logic using the GPIO */
+#ifdef CONFIG_I2C_ALGO_BUSCLEAR
+int i2c_algo_busclear_gpio(struct device *dev, int scl_gpio,
+ int scl_gpio_flags, int sda_gpio, int sda_gpio_flags,
+ int max_retry_clock, int clock_speed_hz);
+#else
+static inline int i2c_algo_busclear_gpio(struct device *dev, int scl_gpio,
+ int scl_gpio_flags, int sda_gpio, int sda_gpio_flags,
+ int max_retry_clock, int clock_speed_hz)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_I2C_ALGO_BUSCLEAR */
+
#endif /* _LINUX_I2C_H */