
Hi,
On 10/27/20 6:36 AM, Pali Rohár wrote:
Function twl4030_i2c_read() is like twl4030_i2c_read_u8() but instead of single value it rather returns array of values.
Just minor comment. Is there a reason not to touch twl4030_i2c_write_u8()?
Best Regards, Jaehoon Chung
Signed-off-by: Pali Rohár pali@kernel.org
drivers/power/twl4030.c | 7 +++---- include/twl4030.h | 12 +++++++++--- 2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/drivers/power/twl4030.c b/drivers/power/twl4030.c index b0d5cba2c4..f48af84e17 100644 --- a/drivers/power/twl4030.c +++ b/drivers/power/twl4030.c @@ -201,7 +201,7 @@ int twl4030_i2c_write_u8(u8 chip_no, u8 reg, u8 val) return 0; }
-int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *valp) +int twl4030_i2c_read(u8 chip_no, u8 reg, u8 *valp, int len) { struct udevice *dev; int ret; @@ -211,12 +211,11 @@ int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *valp) pr_err("unable to get I2C bus. ret %d\n", ret); return ret; }
- ret = dm_i2c_reg_read(dev, reg);
- if (ret < 0) {
- ret = dm_i2c_read(dev, reg, valp, len);
- if (ret) { pr_err("reading from twl4030 failed. ret %d\n", ret); return ret; }
- *valp = (u8)ret; return 0;
} #endif diff --git a/include/twl4030.h b/include/twl4030.h index c27ad615ee..ef05193996 100644 --- a/include/twl4030.h +++ b/include/twl4030.h @@ -654,14 +654,20 @@ static inline int twl4030_i2c_write_u8(u8 chip_no, u8 reg, u8 val) return i2c_write(chip_no, reg, 1, &val, 1); }
-static inline int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *val) +static inline int twl4030_i2c_read(u8 chip_no, u8 reg, u8 *val, int len) {
- return i2c_read(chip_no, reg, 1, val, 1);
- return i2c_read(chip_no, reg, 1, val, len);
} #else int twl4030_i2c_write_u8(u8 chip_no, u8 reg, u8 val); -int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *val); +int twl4030_i2c_read(u8 chip_no, u8 reg, u8 *val, int len); #endif
+static inline int twl4030_i2c_read_u8(u8 chip_no, u8 reg, u8 *val) +{
- return twl4030_i2c_read(chip_no, reg, val, 1);
+}
/*
- Power
*/