diff options
author | Kamel Bouhara <kamel.bouhara@bootlin.com> | 2020-01-15 13:54:18 +0200 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2020-02-26 11:06:41 +0100 |
commit | d3d3fdcc4c90fed42b400999721a5b535a310533 (patch) | |
tree | 5d17f3686dea8f209b57b811984540f62d3c9d38 /drivers/i2c/busses/i2c-at91.h | |
parent | 19e5cef058a0089af4148d79af4658245a6952d2 (diff) |
i2c: at91: implement i2c bus recovery
Implement i2c bus recovery when slaves devices might hold SDA low.
In this case re-assign SCL/SDA to gpios and issue 9 dummy clock pulses
until the slave release SDA.
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c/busses/i2c-at91.h')
-rw-r--r-- | drivers/i2c/busses/i2c-at91.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-at91.h b/drivers/i2c/busses/i2c-at91.h index 977a67bc0f88..f57a6cab96b4 100644 --- a/drivers/i2c/busses/i2c-at91.h +++ b/drivers/i2c/busses/i2c-at91.h @@ -151,6 +151,10 @@ struct at91_twi_dev { u32 fifo_size; struct at91_twi_dma dma; bool slave_detected; + struct i2c_bus_recovery_info rinfo; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_pins_default; + struct pinctrl_state *pinctrl_pins_gpio; #ifdef CONFIG_I2C_AT91_SLAVE_EXPERIMENTAL unsigned smr; struct i2c_client *slave; |