Skip to content
  • Nico Huber's avatar
    Reinvent I2C ops · 58173864
    Nico Huber authored
    
    
    Do not use the global platform_i2c_transfer() function that can only be
    implemented by a single driver. Instead, make a `struct device` aware
    transfer() function the only interface function for I2C controller dri-
    vers to implement.
    
    To not force the slave device drivers to be implemented either above
    generic I2C or specialized SMBus operations, we support SMBus control-
    lers in the slave device interface too.
    
    We start with four simple slave functions: i2c_readb(), i2c_writeb(),
    i2c_readb_at() and i2c_writeb_at(). They are all compatible to respec-
    tive SMBus functions. But we keep aliases because it would be weird to
    force e.g. an I2C EEPROM driver to call smbus_read_byte().
    
    Change-Id: I98386f91bf4799ba3df84ec8bc0f64edd4142818
    Signed-off-by: default avatarNico Huber <nico.huber@secunet.com>
    Reviewed-on: https://review.coreboot.org/20846
    
    
    Tested-by: default avatarbuild bot (Jenkins) <no-reply@coreboot.org>
    Reviewed-by: default avatarAaron Durbin <adurbin@chromium.org>
    Reviewed-by: default avatarKyösti Mälkki <kyosti.malkki@gmail.com>
    58173864