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

From: Yang, Wenyou
Date: Wed Jan 20 2016 - 02:28:11 EST


Hi Peter,

> -----Original Message-----
> From: Peter Korsgaard [mailto:jacmet@xxxxxxxxx] On Behalf Of Peter Korsgaard
> Sent: 2016年1月15日 15:58
> To: Yang, Wenyou <Wenyou.Yang@xxxxxxxxx>
> Cc: Lee Jones <lee.jones@xxxxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>;
> Pawel Moll <pawel.moll@xxxxxxx>; Mark Rutland <mark.rutland@xxxxxxx>; Ian
> Campbell <ijc+devicetree@xxxxxxxxxxxxxx>; Kumar Gala <galak@xxxxxxxxxxxxxx>;
> devicetree@xxxxxxxxxxxxxxx; Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>;
> Ferre, Nicolas <Nicolas.FERRE@xxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx;
> Javier Martinez Canillas <javier@xxxxxxxxxxxx>; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [PATCH v5 1/2] mfd: act8945a: add Active-semi ACT8945A PMIC
> MFD driver
>
> >>>>> "Yang," == Yang, Wenyou <Wenyou.Yang@xxxxxxxxx> writes:
>
> Hi,
>
> >> Why not make it a tristate instead? Having regulators as modules is perhaps
> not a >> very wise thing to do, but conceptually I don't see why this code couldn't
> be a >> module.
>
> > Yes, you are right. it can be use a tristate.
>
> Ok, good.
>
> >> > + act8945a = devm_kzalloc(&i2c->dev, sizeof(*act8945a),
> >> > +GFP_KERNEL);
> >> > + if (!act8945a)
> >> > + return -ENOMEM;
> >> > +
> >>
> >> What is the point of this structure (and the header file)? Can't the subdevices
> just >> do dev_get_regmap(dev->parent)? regulator_register() afaik already does
> this by >> default.
>
> > Yes, I re-read regulator_register() code. It did do dev_get_regmap(dev-
> >parent).
>
> > I think this structure should be pointed by dev->parent, this structure is
> necessary.
>
> > Yes regulator driver should be simpler.
>
> > Moreover, it is used by another sub device, charger. Which don't such code.
>
> 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.


Best Regards,
Wenyou Yang