Re: [PATCH v6 6/6] power: supply: Add Spreadtrum SC27XX fuel gauge unit driver

From: Baolin Wang
Date: Thu Nov 01 2018 - 02:42:18 EST


On 31 October 2018 at 16:56, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
> On Mon, Oct 22, 2018 at 9:44 AM Baolin Wang <baolin.wang@xxxxxxxxxx> wrote:
>
>> This patch adds the Spreadtrum SC27XX serial PMICs fuel gauge support,
>> which is used to calculate the battery capacity.
>>
>> Original-by: Yuanjiang Yu <yuanjiang.yu@xxxxxxxxxx>
>> Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx>
>> Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
>> ---
>> Changes from v5:
>> - Save the OCV values in micro volts for OCV capacity table.
>> - Use devm_kmemdup() instead of devm_kzalloc() in sc27xx_fgu_hw_init()
>
> Hi Baolin, you can keep my ACK, just adding some nitpicking:

Thanks.

>
>> +struct sc27xx_fgu_data {
>> + struct regmap *regmap;
>> + struct device *dev;
>> + struct power_supply *battery;
>> + u32 base;
>> + struct mutex lock;
>> + struct gpio_desc *gpiod;
>> + struct iio_channel *channel;
>> + bool bat_present;
>> + int internal_resist;
>> + int total_cap;
>> + int init_cap;
>> + int init_clbcnt;
>> + int max_volt;
>> + int table_len;
>
> Can the above really be negative or should these int:s really
> be unsigned int?

I think the table_len can be changed to u32, but for others, I'd like
to keep consistency with the power supply battery informationã

>
>> +static int sc27xx_fgu_adc_to_current(int adc)
>> +{
>> + return (adc * 1000) / SC27XX_FGU_1000MA_ADC;
>> +}
>> +
>> +static int sc27xx_fgu_adc_to_voltage(int adc)
>> +{
>> + return (adc * 1000) / SC27XX_FGU_1000MV_ADC;
>> +}
>
> Would you maybe use
> DIV_ROUND_CLOSEST(adc*1000, SC27XX_FGU_1000MV_ADC)
> on these?

Good point. Will change in next version. Thanks for your comments.

>
> Overall this is a very fine driver and really pretty compared to some
> other stuff we have in drivers/power.

Thanks.

--
Baolin Wang
Best Regards