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