zephyr/drivers
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
..
adc device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
audio device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
bluetooth drivers: use K_KERNEL_STACK macros 2020-08-04 12:16:43 -04:00
can device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
clock_control device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
console device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
counter device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
crypto device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
dac device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
debug
display device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
dma device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
eeprom device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
entropy device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
espi device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
ethernet device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
flash device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
gpio device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
hwinfo shell: enable modules by default if shell is enabled 2020-06-24 21:37:12 -04:00
i2c drivers: i2c_ll_stm32_v1: Reset i2c device on timeout 2020-08-12 14:53:37 -05:00
i2s device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
ieee802154 device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
interrupt_controller device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
ipm device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
kscan drivers: kscan: generalize and improve FT5336 driver 2020-08-12 12:35:04 +02:00
led device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
led_strip device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
lora drivers: lora: sx126x: Use the new pin helpers 2020-07-13 13:11:59 +02:00
modem device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
net device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
neural_net device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
pcie device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
peci zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
pinmux device: Apply config_info rename everywhere 2020-08-11 19:30:53 +02:00
ps2 device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
ptp_clock
pwm device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
sensor device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
serial drivers: serial: native_posix: Add example using gnome-terminal 2020-08-12 17:12:31 +02:00
spi device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
timer cmake: remove _if_kconfig() functions 2020-08-01 12:35:20 +02:00
usb drivers: use K_KERNEL_STACK macros 2020-08-04 12:16:43 -04:00
video device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
watchdog device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
wifi device: Apply driver_api/data attributes rename everywhere 2020-08-11 19:30:53 +02:00
CMakeLists.txt cmake: remove _if_kconfig() functions 2020-08-01 12:35:20 +02:00
Kconfig