Skip to content
  • Lukasz Majewski's avatar
    DM: I2C: Introduce 'u-boot, i2c-transaction-bytes' property · a40fe217
    Lukasz Majewski authored
    
    
    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: default avatarLukasz Majewski <lukma@denx.de>
    a40fe217