summaryrefslogtreecommitdiff
path: root/include/charge_manager.h
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2014-10-23 16:46:05 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-10-26 23:47:14 +0000
commit2eb6cba5bd049bc74f84691dda7abcec650a9d10 (patch)
treebfc545fb53f8121887b3837adf65dbc372a7a6a7 /include/charge_manager.h
parenta08c2d579e099580c033f99e56b2130ff8383a97 (diff)
downloadchrome-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.h14
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);