diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2014-10-23 16:46:05 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-10-26 23:47:14 +0000 |
commit | 2eb6cba5bd049bc74f84691dda7abcec650a9d10 (patch) | |
tree | bfc545fb53f8121887b3837adf65dbc372a7a6a7 /include/charge_manager.h | |
parent | a08c2d579e099580c033f99e56b2130ff8383a97 (diff) | |
download | chrome-ec-2eb6cba5bd049bc74f84691dda7abcec650a9d10.tar.gz |
charge_manager: Move supplier list and priority hierarchy to board
Allow the list of charge suppliers and port selection priority to be
specified at the board level.
BUG=chrome-os-partner:32650
TEST=Manual on samus_pd. Plug + unplug PD and BC1.2 chargers, verify
that PD is always preferred and higher power port / supplier is always
selected.
BRANCH=Samus
Change-Id: Ic867a40120c809111bf76bf290ed6f204eab1168
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/225292
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'include/charge_manager.h')
-rw-r--r-- | include/charge_manager.h | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/include/charge_manager.h b/include/charge_manager.h index a5b4b6d275..44ed605a23 100644 --- a/include/charge_manager.h +++ b/include/charge_manager.h @@ -7,23 +7,15 @@ #define __CHARGE_MANAGER_H /* Charge port that indicates no active port */ +#define CHARGE_SUPPLIER_NONE -1 #define CHARGE_PORT_NONE -1 + /* Initial charge state */ #define CHARGE_CURRENT_UNINITIALIZED -1 #define CHARGE_VOLTAGE_UNINITIALIZED -1 #define POWER(charge_port) ((charge_port.current) * (charge_port.voltage)) -/* Charge suppliers, sorted by priority */ -enum charge_supplier { - CHARGE_SUPPLIER_NONE = -1, - /* Highest priority supplier first */ - CHARGE_SUPPLIER_PD = 0, - CHARGE_SUPPLIER_TYPEC = 1, - CHARGE_SUPPLIER_BC12 = 2, - CHARGE_SUPPLIER_COUNT -}; - /* Charge tasks report available current and voltage */ struct charge_port_info { int current; @@ -31,7 +23,7 @@ struct charge_port_info { }; /* Called by charging tasks to update their available charge */ -void charge_manager_update(enum charge_supplier supplier, +void charge_manager_update(int supplier, int charge_port, struct charge_port_info *charge); |