• Jean Delvare's avatar
    i2c/tsl2550: Use combined SMBus transactions · ac780941
    Jean Delvare authored
    Make the I/O faster, mainly by using combined SMBus transactions when
    possible. While the TSL2550 datasheet doesn't say the device supports
    them, they seem to work just fine in practice, and a combined
    transaction is faster than two simple transactions in many cases and
    always more reliable.
    
    A side effect is to suppress the delays between SMBus writes and
    reads. The datasheet doesn't say they are needed and things work just
    fine for me without them.
    
    I also couldn't see any reason for the delay between reading the two
    channels. Nor for the loop to get a reading in the first place. The
    400 ms delay between samples only matters at chip power-up, after that
    the chip always hold the previously sampled value so we never get to
    wait.
    
    All these changes make reading the lux value much faster and cheaper.
    Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
    Tested-by: default avatarMichele De Candia <michele.decandia@valueteam.com>
    Cc: Rodolfo Giometti <giometti@linux.it>
    ac780941
tsl2550.c 10.6 KB