[U-Boot] [PATCH 1/2] DM: I2C: Introduce 'u-boot, i2c-transaction-bytes' property
hs at denx.de
Wed Apr 10 05:40:24 UTC 2019
Am 04.04.2019 um 12:35 schrieb Lukasz Majewski:
> The 'u-boot,i2c-transaction-bytes' device tree property provides
> information regarding number of bytes transferred by a device in a
> single transaction.
> This change is necessary to avoid hanging devices after soft reset.
> One notable example is communication with MC34708 device:
> 1. Reset when communicating with MC34708 via I2C.
> 2. The u-boot (after reboot -f) tries to setup the I2C and then calls
> force_idle_bus. In the same time MC34708 still has some data to be sent
> (as it transfers data in 24 bits chunks).
> 3. The force_idle_bus() is not able to make the bus idle as 8 SCL
> clocks may be not enough to have the full transmission.
> 4. We end up with I2C inconsistency with MC34708.
> This PMIC device requires 24+ SCL cycles to make finish any pending I2C
> Signed-off-by: Lukasz Majewski <lukma at denx.de>
> doc/device-tree-bindings/i2c/i2c.txt | 5 +++++
> drivers/i2c/i2c-uclass.c | 24 ++++++++++++++++++++++++
> drivers/i2c/mxc_i2c.c | 19 +++++++++++++++++--
> include/i2c.h | 2 ++
> 4 files changed, 48 insertions(+), 2 deletions(-)
Applied to u-boot-i2c.git master
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs at denx.de
More information about the U-Boot