Commit 05f2281b authored by Ricardo Rivera-Matos's avatar Ricardo Rivera-Matos Committed by Sebastian Reichel

power: supply: Introduces bypass charging property

Adds a POWER_SUPPLY_CHARGE_TYPE_BYPASS option to the POWER_SUPPLY_PROP_CHARGE_TYPE
property to facilitate bypass charging operation.

In bypass charging operation, the charger bypasses the charging path around the
integrated converter allowing for a "smart" wall adaptor to perform the power
conversion externally.

This operational mode is critical for the USB PPS standard of power adaptors and is
becoming a common feature in modern charging ICs such as:

- BQ25980
- BQ25975
- BQ25960
- LN8000
- LN8410
Signed-off-by: default avatarRicardo Rivera-Matos <rriveram@opensource.cirrus.com>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parent e5372503
...@@ -380,13 +380,16 @@ Description: ...@@ -380,13 +380,16 @@ Description:
algorithm to adjust the charge rate dynamically, without algorithm to adjust the charge rate dynamically, without
any user configuration required. "Custom" means that the charger any user configuration required. "Custom" means that the charger
uses the charge_control_* properties as configuration for some uses the charge_control_* properties as configuration for some
different algorithm. different algorithm. "Bypass" means the charger bypasses the
charging path around the integrated converter allowing for a
"smart" wall adaptor to perform the power conversion
externally.
Access: Read, Write Access: Read, Write
Valid values: Valid values:
"Unknown", "N/A", "Trickle", "Fast", "Standard", "Unknown", "N/A", "Trickle", "Fast", "Standard",
"Adaptive", "Custom" "Adaptive", "Custom", "Bypass"
What: /sys/class/power_supply/<supply_name>/charge_term_current What: /sys/class/power_supply/<supply_name>/charge_term_current
Date: July 2014 Date: July 2014
......
...@@ -89,6 +89,7 @@ static const char * const POWER_SUPPLY_CHARGE_TYPE_TEXT[] = { ...@@ -89,6 +89,7 @@ static const char * const POWER_SUPPLY_CHARGE_TYPE_TEXT[] = {
[POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE] = "Adaptive", [POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE] = "Adaptive",
[POWER_SUPPLY_CHARGE_TYPE_CUSTOM] = "Custom", [POWER_SUPPLY_CHARGE_TYPE_CUSTOM] = "Custom",
[POWER_SUPPLY_CHARGE_TYPE_LONGLIFE] = "Long Life", [POWER_SUPPLY_CHARGE_TYPE_LONGLIFE] = "Long Life",
[POWER_SUPPLY_CHARGE_TYPE_BYPASS] = "Bypass",
}; };
static const char * const POWER_SUPPLY_HEALTH_TEXT[] = { static const char * const POWER_SUPPLY_HEALTH_TEXT[] = {
......
...@@ -49,6 +49,7 @@ enum { ...@@ -49,6 +49,7 @@ enum {
POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE, /* dynamically adjusted speed */ POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE, /* dynamically adjusted speed */
POWER_SUPPLY_CHARGE_TYPE_CUSTOM, /* use CHARGE_CONTROL_* props */ POWER_SUPPLY_CHARGE_TYPE_CUSTOM, /* use CHARGE_CONTROL_* props */
POWER_SUPPLY_CHARGE_TYPE_LONGLIFE, /* slow speed, longer life */ POWER_SUPPLY_CHARGE_TYPE_LONGLIFE, /* slow speed, longer life */
POWER_SUPPLY_CHARGE_TYPE_BYPASS, /* bypassing the charger */
}; };
enum { enum {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment