On 12/18/2018 11:01 AM, Andrew Lunn wrote: > On Tue, Dec 18, 2018 at 07:24:52AM +0100, Sergio Paracuellos wrote: >>> +static int ksz9477_i2c_read_reg(struct i2c_client *i2c, u32 reg, u8 *val, >>> + unsigned int len) >>> +{ >>> + struct i2c_msg msg[2]; >>> + int ret = 0; >>> + >>> + val[0] = (u8)(reg >> 8); >>> + val[1] = (u8)reg; >>> + >>> + msg[0].addr = i2c->addr; >>> + msg[0].flags = 0; >>> + msg[0].len = 2; >>> + msg[0].buf = val; >>> + >>> + msg[1].addr = i2c->addr; >>> + msg[1].flags = I2C_M_RD; >>> + msg[1].len = len; >>> + msg[1].buf = &val[2]; >>> + >>> + if (i2c_transfer(i2c->adapter, msg, 2) != 2) >>> + ret = -ENODEV; >> >> Should this be -EREMOTEIO instead? > > It should actually be whatever error code i2c_transfer returns.
Before we plunge into coding yet another I2C-and-SPI layer, can we use regmap instead ? -- Best regards, Marek Vasut