Subject: [PATCH v5 1/2] mfd: act8945a: add Active-semi ACT8945A PMIC MFD driver

From: [email-masked] (Krzysztof Kozlowski)
Date: Wed, 20 Jan 2016 16:53:04 +0900

On 20.01.2016 16:50, Yang, Wenyou wrote:
> Hi Peter,
> 
> On 2016/1/20 15:40, Peter Korsgaard wrote:
>>>>>>> "Yang," == Yang, Wenyou <[email-masked]> writes:
>> Hi,
>>
>>>> But the charger driver can just as well do:
>>   >>
>>   >> dev_get_regmap(dev->parent);
>>   >>
>>   >> instead of:
>>   >>
>>   >> dev_get_drvdata(pdev->dev.parent)->regmap.
>>
>>   > For regulator, it works use the core do dev_get_regmap(dev->parent),
>>   > but for charger, it need to export *act8945a.
>>
>> Why?
> 
> There is a callback (*get_property)(...), who will read the charger
> register via regmap,
> 
> but it doesn't provide the argument for regmap.
> 
> include/linux/power_supply.h
> 
> struct power_supply_desc {
>         [ ... ]
>         int (*get_property)(struct power_supply *psy,
>                              enum power_supply_property psp,
>                              union power_supply_propval *val);
>         [ ... ]
> 
> }
> 
>>
>> Just like the regulator core does, your battery driver can do:
>>
>> dev_get_regmap(dev->parent);
>>

Why can't you store the pointer to regmap as power supply driver data?
There is really no need for the structure containing only one pointer.

BR,
Krzysztof