gpio: pcal9535a: use I2C register access API

Use I2C register access API for writing/reading registers.

Change-Id: Ic35b3e7159f9827f2d202d8cd1ae8f26ee6300f1
Signed-off-by: Bogdan Davidoaia <bogdan.m.davidoaia@intel.com>
This commit is contained in:
Bogdan Davidoaia 2016-04-26 11:39:30 +03:00 committed by Anas Nashif
commit c4878335c8

View file

@ -104,18 +104,8 @@ static int _read_port_regs(struct device *dev, uint8_t reg,
struct device * const i2c_master = drv_data->i2c_master; struct device * const i2c_master = drv_data->i2c_master;
uint16_t i2c_addr = config->i2c_slave_addr; uint16_t i2c_addr = config->i2c_slave_addr;
int ret; int ret;
uint8_t cmd[] = { reg };
struct i2c_msg msgs[2];
msgs[0].buf = cmd; ret = i2c_burst_read(i2c_master, i2c_addr, reg, buf->byte, 2);
msgs[0].len = 1;
msgs[0].flags = I2C_MSG_WRITE;
msgs[1].buf = buf->byte;
msgs[1].len = 2;
msgs[1].flags = I2C_MSG_READ | I2C_MSG_RESTART;
ret = i2c_transfer(i2c_master, msgs, 2, i2c_addr);
if (ret) { if (ret) {
DBG("PCAL9535A[0x%X]: error reading register 0x%X (%d)\n", DBG("PCAL9535A[0x%X]: error reading register 0x%X (%d)\n",
i2c_addr, reg, ret); i2c_addr, reg, ret);
@ -149,13 +139,12 @@ static int _write_port_regs(struct device *dev, uint8_t reg,
(struct gpio_pcal9535a_drv_data * const)dev->driver_data; (struct gpio_pcal9535a_drv_data * const)dev->driver_data;
struct device * const i2c_master = drv_data->i2c_master; struct device * const i2c_master = drv_data->i2c_master;
uint16_t i2c_addr = config->i2c_slave_addr; uint16_t i2c_addr = config->i2c_slave_addr;
uint8_t cmd[] = {reg, buf->byte[0], buf->byte[1]};
int ret; int ret;
DBG("PCAL9535A[0x%X]: Write: REG[0x%X] = 0x%X, REG[0x%X] = 0x%X\n", DBG("PCAL9535A[0x%X]: Write: REG[0x%X] = 0x%X, REG[0x%X] = 0x%X\n",
i2c_addr, reg, buf->byte[0], (reg + 1), buf->byte[1]); i2c_addr, reg, buf->byte[0], (reg + 1), buf->byte[1]);
ret = i2c_write(i2c_master, cmd, sizeof(cmd), i2c_addr); ret = i2c_burst_write(i2c_master, i2c_addr, reg, buf->byte, 2);
if (ret) { if (ret) {
DBG("PCAL9535A[0x%X]: error writing from register 0x%X (%d)\n", DBG("PCAL9535A[0x%X]: error writing from register 0x%X (%d)\n",
i2c_addr, reg, ret); i2c_addr, reg, ret);