zephyr/drivers/i2c
Erwin Rol f2156b9d4a drivers: i2c_ll_stm32_v1: Reset i2c device on timeout
When, due to EMC, a spike happens on the SDA line the hardware hangs
and will not function anymore until the unit is reset.

By adding a timeout to the msg_read and msg_write function we can
detect that something went wrong, and when that happens reset
the I2C bus.

The reset will also reset all configuration, so before reseting
store all important registers and after reseting restore
those settings.

Signed-off-by: Erwin Rol <erwin@erwinrol.com>
2020-08-12 14:53:37 -05:00
..
slave device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
CMakeLists.txt drivers: i2c: Add a dump routine 2020-08-04 17:50:39 +02:00
i2c_bitbang.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_bitbang.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_cc13xx_cc26xx.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_cc32xx.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_common.c drivers: i2c: Add a dump routine 2020-08-04 17:50:39 +02:00
i2c_dw_port_x.h drivers: i2c_dw: use device_mmio 2020-07-17 11:38:18 +02:00
i2c_dw_registers.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_dw.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_dw.h drivers: i2c_dw: use device_mmio 2020-07-17 11:38:18 +02:00
i2c_esp32.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_gecko.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_gpio.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_handlers.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_imx.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_litex.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_ll_stm32_v1.c drivers: i2c_ll_stm32_v1: Reset i2c device on timeout 2020-08-12 14:53:37 -05:00
i2c_ll_stm32_v2.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_ll_stm32.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_ll_stm32.h device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_lpc11u6x.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_lpc11u6x.h drivers: i2c: Add support for LPC11U6X I2C controllers 2020-07-29 20:12:24 +02:00
i2c_mchp_xec.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_mcux_flexcomm.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_mcux_lpi2c.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_mcux.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_nios2.c device: Apply config_info rename everywhere 2020-08-11 19:30:53 +02:00
i2c_nrfx_twi.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_nrfx_twim.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_rv32m1_lpi2c.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_sam0.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_sam_twi.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_sam_twihs.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_sbcon.c device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
i2c_shell.c drivers: i2c: update i2c_shell commands 2020-07-27 08:50:52 -04:00
i2c_sifive.c device: Apply config_info rename everywhere 2020-08-11 19:30:53 +02:00
i2c-priv.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
Kconfig drivers: i2c: Add support for LPC11U6X I2C controllers 2020-07-29 20:12:24 +02:00
Kconfig.cc13xx_cc26xx kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.dw kconfig: Replace non-defconfig single-symbol 'if's with 'depends on' 2020-02-12 10:32:34 -06:00
Kconfig.esp32 kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.gpio drivers: i2c: gpio: convert to using devicetree for instances 2020-05-05 10:17:23 -05:00
Kconfig.litex drivers: i2c: cleanup select HAS_DTS_I2C 2020-04-03 22:48:31 -04:00
Kconfig.lpc11u6x drivers: i2c: Add support for LPC11U6X I2C controllers 2020-07-29 20:12:24 +02:00
Kconfig.nrfx drivers: nrf: Remove no longer suitable dependencies on Kconfig options 2020-04-03 14:47:32 +02:00
Kconfig.sam0 kconfig: Replace non-defconfig single-symbol 'if's with 'depends on' 2020-02-12 10:32:34 -06:00
Kconfig.sbcon kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.sifive kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.stm32 drivers/i2c: stm32: Configure driver by compatible 2020-04-15 08:21:30 -05:00
Kconfig.xec kconfig: Turn pointless 'menuconfig's into 'config's 2020-01-24 21:30:17 -05:00