summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/i2c.h18
-rw-r--r--include/i2c_eeprom.h2
2 files changed, 18 insertions, 2 deletions
diff --git a/include/i2c.h b/include/i2c.h
index 0faf8542e28..059200115a8 100644
--- a/include/i2c.h
+++ b/include/i2c.h
@@ -331,6 +331,24 @@ uint i2c_get_chip_addr_offset_mask(struct udevice *dev);
int i2c_deblock(struct udevice *bus);
/**
+ * i2c_deblock_gpio_loop() - recover a bus from an unknown state by toggling SDA/SCL
+ *
+ * This is the inner logic used for toggling I2C SDA/SCL lines as GPIOs
+ * for deblocking the I2C bus.
+ *
+ * @sda_pin: SDA GPIO
+ * @scl_pin: SCL GPIO
+ * @scl_count: Number of SCL clock cycles generated to deblock SDA
+ * @start_count:Number of I2C start conditions sent after deblocking SDA
+ * @delay: Delay between SCL clock line changes
+ * @return 0 if OK, -ve on error
+ */
+struct gpio_desc;
+int i2c_deblock_gpio_loop(struct gpio_desc *sda_pin, struct gpio_desc *scl_pin,
+ unsigned int scl_count, unsigned int start_count,
+ unsigned int delay);
+
+/**
* struct dm_i2c_ops - driver operations for I2C uclass
*
* Drivers should support these operations unless otherwise noted. These
diff --git a/include/i2c_eeprom.h b/include/i2c_eeprom.h
index b96254ae79f..cd620d519fc 100644
--- a/include/i2c_eeprom.h
+++ b/include/i2c_eeprom.h
@@ -16,8 +16,6 @@ struct i2c_eeprom_ops {
struct i2c_eeprom {
/* The EEPROM's page size in byte */
unsigned long pagesize;
- /* The EEPROM's page width in bits (pagesize = 2^pagewidth) */
- unsigned pagewidth;
/* The EEPROM's capacity in bytes */
unsigned long size;
};