[U-Boot] [PATCH 1/2] DM: I2C: Introduce 'u-boot, i2c-transaction-bytes' property

Heiko Schocher hs at denx.de
Tue Apr 9 06:02:23 UTC 2019


Hello Lukasz,

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
> transmission.
> 
> 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(-)

Reviewed-by: Heiko Schocher<hs at denx.de>

bye,
Heiko
-- 
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 mailing list