Re: [PATCH 2/4] power_supply: Introduce Generic Power Supplycharging driver

From: Pavel Machek
Date: Sat Jan 25 2014 - 12:04:20 EST


Hi!

> The Power Supply charging driver connects multiple subsystems
> to do charging in a generic way. The subsystems involves power_supply,
> thermal and battery communication subsystems (1wire).
> With this the charging is handled in a generic way.

...do we really need copy of documentation file in changelog?

> +2. Reading Battery charging profile
> +===================================
> +
> +Power Supply charging driver expose sAPIs to retrieve battery profile of a

typo sAPI.

> +battery. The battery profile can be read by battery identification driver which
> +may be 1wire/I2C/SFI driver. Battery identification driver can register the
> +battery profile with the power supply charging driver using the API
> +psy_battery_prop_changed(). The driver also exposes API
> +psy_get_batt_prop() to retrieve the battery profile which can be

Please be consistent. _get_battery_pro_ ?

> +used by power supply drivers to setup the charging. Also drivers
> +can register for battery removal/insertion notifications using
> +power_supply_reg_notifier()

> +/* register with power_supply subsystem */
> +power_supply_registe(device, &psy_usb);

"r("
> + * Read access using get_property_function
> + * Returns the online property set using the set_property
> + function
> + * Write access using set_property function
> + * Expose the value through get_property_fucntion.

typo "function"

> +* POWER_SUPPLY_PROP_PRESENT
> + * Read access using get_property_function
> + * Returns the present property set using the set_property
> + function
> + * Write access using set_property function
> + * Expose the value through get_property_fucntion.

here too.

> + * Write access using set_property
> + * Set Maximum charging current
> + * Action: Configure safety charging registers if any. If not no
> + actions expected for this.

Having property that does nothing sounds evil to me.

> +* POWER_SUPPLY_CHARGER_PROP_ENABLE_CHARGING
> + * Write access using set_property
> + * Enable/Disable charging. Charger supplies power to platform,
> + but charging is disabled

This is unclear. Charging is always disabled?

> + * Write access using set_property
> + * Reset charger Watch Dog Timer
> + * Action: Reset charger Watch dog timer.

IntereSting caPitalization.

Also how do higher levels know how often to reset wdt?

> +3.4 Throttling data configuration
> +=============================
> +Power supply charging driver can take actions for Thermal throttling requests.
> +Power supply core sends event PSY_EVENT_THROTTLE on power_supply_notifier
> +chain. Power supply charging driver handle this event and takes throttling
> +actions as in the throttling configuration structure. The throttling
> +configuration structure has the following format

missing :

> +Power supply charging driver process this event and takes actions to setup
> +charging

Missing .

> +Power supply charging driver supports pluggable charging algorithms. Charging
> +algorithms process charging profile and/or applies different logic (pulse

"processes".

> + /* callback function to retreive battery thresholds */
> + pse_algo.get_batt_thresholds = my_algo__get_bat_thresholds;

Too many __s.

> +config POWER_SUPPLY_CHARGER
> + bool "Power Supply Charger"
> + help
> + Say Y here to enable the power supply charging control driver. Charging
> + control supports charging in a generic way. This allows the charger
> + drivers to keep the charging logic outside and the charger driver
> + just need to abstract the charger hardware

Missing .

> +struct psy_event_node {
> + struct list_head node;
> + unsigned long event;
> + struct psy_cable_props cap;
> + struct power_supply *psy;
> + struct psy_ps_batt_chg_prof batt_property;

Pls gt sm readable identfrs.

> +struct power_supply_charger_cxt {

ps_charger_context ?

Pavel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/