RE: [PATCH 1/2] power_supply: Add charge control struct in powersupply class

From: Pallala, Ramakrishna
Date: Mon Jan 07 2013 - 00:43:53 EST


> > > > +struct power_supply_charger_control {
> > > > + const char *name;
> > > > + /* get charging status */
> > > > + int (*is_charging_enabled)(void);
> > > > + int (*is_charger_enabled)(void);
> > > > +
> > > > + /* set charging parameters */
> > > > + int (*set_in_current_limit)(int uA);
> > > > + int (*set_charge_current)(int uA);
> > > > + int (*set_charge_voltage)(int uV);
> > > > +
> > > > + /* control battery charging */
> > > > + int (*enable_charging)(void);
> > > > + int (*disable_charging)(void);
> > > > +
> > > > + /* control VSYS or system supply */
> > > > + int (*turnon_charger)(void);
> > > > + int (*turnoff_charger)(void);
> > > > +};
> > > > +
> > >
> > > I'm all for this patch, but why do you need to place it into
> > > power_supply.h and power_supply_core.c? :) I see nothing generic
> > > here, it's pure charger-manager stuff. So, place everything into
> > > charger-
> > manager.{c,h}.
> >
> > Hi Anton,
> >
> > The main reason for keeping this stuff in power_supply.h and
> > power_supply_core.c is to make these interfaces uniform Across
> > multiple charger frameworks and to avoid each charger framework define
> > it's own interfaces. If there is need for new callback They can add to
> > the existing struct defined above and it will available to all the
> > frameworks. Also the work required to support a new Framework will be
> > reduced if the driver already support any one of the existing frameworks.
> >
>
> Rama,
>
> The similar functionalities are exposed by patch
> https://lkml.org/lkml/2012/10/18/219.
> As per Anton's review comments on this patch, I'll be moving the macros to
> power_supply.h.
> Wouldn't that be enough ?

Though the macros seem to be fine but I would still think that call back way of interfaces would be
More flexible and straightforward.

Thanks,
Ram
èº{.nÇ+‰·Ÿ®‰­†+%ŠËlzwm…ébëæìr¸›zX§»®w¥Š{ayºÊÚë,j­¢f£¢·hš‹àz¹®w¥¢¸ ¢·¦j:+v‰¨ŠwèjØm¶Ÿÿ¾«‘êçzZ+ƒùšŽŠÝj"ú!¶iO•æ¬z·švØ^¶m§ÿðà nÆàþY&—