[PATCH 1/2] power: twl4030: Add twl4030_i2c_read() function

Pali Rohár
2020-10-27T21:57:26Z

On Wednesday 28 October 2020 06:45:51 Jaehoon Chung wrote:
> 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()?

Well, it is because I have no usage for twl4030_i2c_write() yet. So I have
not touched write functions.

This new twl4030_i2c_read() function is used in PATCH 2/2.

> 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
> > */
> >
>