Skip to content
Snippets Groups Projects
  • Stephen Warren's avatar
    68049a08
    i2c: tegra: use repeated start for reads · 68049a08
    Stephen Warren authored
    
    I2C read transactions are typically implemented as follows:
    
    START(write) address REPEATED_START(read) data... STOP
    
    However, Tegra's I2C driver currently implements reads as follows:
    
    START(write) address STOP START(read) data... STOP
    
    This sequence confuses at least the AS3722 PMIC on the Jetson TK1 board,
    leading to corrupted read data in some cases. Fix the driver to chain
    the transactions together using repeated starts to solve this.
    
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    Reviewed-by: default avatarYen Lin <yelin@nvidia.com>
    68049a08
    History
    i2c: tegra: use repeated start for reads
    Stephen Warren authored
    
    I2C read transactions are typically implemented as follows:
    
    START(write) address REPEATED_START(read) data... STOP
    
    However, Tegra's I2C driver currently implements reads as follows:
    
    START(write) address STOP START(read) data... STOP
    
    This sequence confuses at least the AS3722 PMIC on the Jetson TK1 board,
    leading to corrupted read data in some cases. Fix the driver to chain
    the transactions together using repeated starts to solve this.
    
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    Reviewed-by: default avatarYen Lin <yelin@nvidia.com>