kernel_samsung_a53x/drivers/i2c
Robert Hancock 697cea0298 i2c: xiic: Try re-initialization on bus busy timeout
[ Upstream commit 1d4a1adbed2582444aaf97671858b7d12915bd05 ]

In the event that the I2C bus was powered down when the I2C controller
driver loads, or some spurious pulses occur on the I2C bus, it's
possible that the controller detects a spurious I2C "start" condition.
In this situation it may continue to report the bus is busy indefinitely
and block the controller from working.

The "single-master" DT flag can be specified to disable bus busy checks
entirely, but this may not be safe to use in situations where other I2C
masters may potentially exist.

In the event that the controller reports "bus busy" for too long when
starting a transaction, we can try reinitializing the controller to see
if the busy condition clears. This allows recovering from this scenario.

Fixes: e1d5b6598cdc ("i2c: Add support for Xilinx XPS IIC Bus Interface")
Signed-off-by: Robert Hancock <robert.hancock@calian.com>
Cc: <stable@vger.kernel.org> # v2.6.34+
Reviewed-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:36 +01:00
..
algos Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
busses i2c: xiic: Try re-initialization on bus busy timeout 2024-11-23 23:21:36 +01:00
muxes i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node() 2024-11-18 10:58:31 +01:00
i2c-boardinfo.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-core-acpi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-core-base.c i2c: Add i2c_get_match_data() 2024-11-23 23:21:20 +01:00
i2c-core-of.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-core-slave.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-core-smbus.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-core.h i2c: core: Fix atomic xfer check for non-preempt config 2024-11-18 12:12:08 +01:00
i2c-dev.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mux.c i2c: mux: Avoid potential false error message in i2c_mux_add_adapter 2024-11-08 11:26:15 +01:00
i2c-slave-eeprom.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-slave-testunit.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-smbus.c i2c: smbus: Send alert notifications to all devices if source not found 2024-11-23 23:20:26 +01:00
i2c-stub.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00