> > > > +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

Reply via email to