linux: forward i2c errors to i2ccmd
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
This commit is contained in:
parent
2c246c7d33
commit
8a1c3cd668
@ -88,11 +88,19 @@ i2c_setup(uint32_t bus, uint32_t rate, uint8_t addr)
|
|||||||
int
|
int
|
||||||
i2c_write(struct i2c_config config, uint8_t write_len, uint8_t *data)
|
i2c_write(struct i2c_config config, uint8_t write_len, uint8_t *data)
|
||||||
{
|
{
|
||||||
int ret = write(config.fd, data, write_len);
|
struct i2c_rdwr_ioctl_data i2c_data;
|
||||||
if (ret != write_len) {
|
struct i2c_msg msgs[1];
|
||||||
if (ret < 0)
|
msgs[0].addr = config.addr;
|
||||||
report_errno("write value i2c", ret);
|
msgs[0].flags = 0x0;
|
||||||
try_shutdown("Unable write i2c device");
|
msgs[0].len = write_len;
|
||||||
|
msgs[0].buf = data;
|
||||||
|
i2c_data.nmsgs = 1;
|
||||||
|
i2c_data.msgs = &msgs[0];
|
||||||
|
|
||||||
|
int ret = ioctl(config.fd, I2C_RDWR, &i2c_data);
|
||||||
|
|
||||||
|
if (ret < 0) {
|
||||||
|
return I2C_BUS_NACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
return I2C_BUS_SUCCESS;
|
return I2C_BUS_SUCCESS;
|
||||||
@ -124,8 +132,8 @@ i2c_read(struct i2c_config config, uint8_t reg_len, uint8_t *reg
|
|||||||
|
|
||||||
int ret = ioctl(config.fd, I2C_RDWR, &i2c_data);
|
int ret = ioctl(config.fd, I2C_RDWR, &i2c_data);
|
||||||
|
|
||||||
if(ret < 0) {
|
if (ret < 0) {
|
||||||
try_shutdown("Unable to read i2c device");
|
return I2C_BUS_NACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
return I2C_BUS_SUCCESS;
|
return I2C_BUS_SUCCESS;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user