diff options
Diffstat (limited to 'src/drivers/i2c/tas5825m/tas5825m.c')
-rw-r--r-- | src/drivers/i2c/tas5825m/tas5825m.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/drivers/i2c/tas5825m/tas5825m.c b/src/drivers/i2c/tas5825m/tas5825m.c index 9f14059a8e..ead1b167e8 100644 --- a/src/drivers/i2c/tas5825m/tas5825m.c +++ b/src/drivers/i2c/tas5825m/tas5825m.c @@ -1,23 +1,24 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include <console/console.h> -#include <device/smbus.h> -#include <device/pci.h> +#include <device/i2c_bus.h> #include "chip.h" #include "tas5825m.h" int tas5825m_write_at(struct device *dev, uint8_t addr, uint8_t value) { - return smbus_write_byte(dev, addr, value); + return i2c_dev_writeb_at(dev, addr, value); } -//TODO: use I2C block write for better performance int tas5825m_write_block_at(struct device *dev, uint8_t addr, const uint8_t *values, uint8_t length) { + // TODO: use I2C block write for better performance; SMBus does not + // have `transfer` op for it. + int res = 0; for (uint8_t i = 0; i < length; i++) { - res = smbus_write_byte(dev, addr + i, values[i]); + res = i2c_dev_writeb_at(dev, addr + i, values[i]); if (res < 0) return res; } @@ -45,8 +46,7 @@ __weak int tas5825m_setup(struct device *dev, int id) static void tas5825m_init(struct device *dev) { - if (dev->enabled && dev->path.type == DEVICE_PATH_I2C && - ops_smbus_bus(get_pbus_smbus(dev))) { + if (dev->enabled && dev->path.type == DEVICE_PATH_I2C && i2c_link(dev)) { printk(BIOS_DEBUG, "tas5825m at %s\n", dev_path(dev)); struct drivers_i2c_tas5825m_config *config = dev->chip_info; |