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

Jaehoon Chung
2020-10-27T22:56:55Z

On 10/28/20 6:57 AM, Pali Roh?r wrote:
> 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>

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Best Regards,
Jaehoon Chung

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