X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=drivers%2Fi2c%2Fi2c-uclass-compat.c;h=de78db6a887f3a4bc74a0486e2ee634c98775057;hb=e9a98ba312a325b6af1a9b75b3ce0ab0232dc614;hp=223f238f4bed0cc475743c94931ed25fd2a2427b;hpb=8e3da9dd113699eed2fa05fcde3c55a2ff410913;p=people%2Fms%2Fu-boot.git diff --git a/drivers/i2c/i2c-uclass-compat.c b/drivers/i2c/i2c-uclass-compat.c index 223f238f4b..de78db6a88 100644 --- a/drivers/i2c/i2c-uclass-compat.c +++ b/drivers/i2c/i2c-uclass-compat.c @@ -9,7 +9,7 @@ #include #include -static int cur_busnum; +static int cur_busnum __attribute__((section(".data"))); static int i2c_compat_get_device(uint chip_addr, int alen, struct udevice **devp) @@ -106,3 +106,24 @@ void board_i2c_init(const void *blob) { /* Nothing to do here - the init happens through driver model */ } + +uint8_t i2c_reg_read(uint8_t chip_addr, uint8_t offset) +{ + struct udevice *dev; + int ret; + + ret = i2c_compat_get_device(chip_addr, 1, &dev); + if (ret) + return 0xff; + return dm_i2c_reg_read(dev, offset); +} + +void i2c_reg_write(uint8_t chip_addr, uint8_t offset, uint8_t val) +{ + struct udevice *dev; + int ret; + + ret = i2c_compat_get_device(chip_addr, 1, &dev); + if (!ret) + dm_i2c_reg_write(dev, offset, val); +}