summaryrefslogtreecommitdiff
path: root/include/charge_manager.h
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2014-11-05 14:38:38 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-11-13 03:14:21 +0000
commit4340685cf9ab9335256d63a8a551faa85af4f892 (patch)
treef5594acdc2359c52bd3d039d0e3cc879ad0b093f /include/charge_manager.h
parentcf48a3640c271663fc1c4156b16f4a25264944d9 (diff)
downloadchrome-ec-4340685cf9ab9335256d63a8a551faa85af4f892.tar.gz
charge_manager: Add charge port override functionality
Allow a charge port to be selected as the override port, which means it will always be selected as the charge port, if any charge supplier is available. BUG=chrome-os-partner:32003 TEST=Attach PD charger and BC1.2 charger. Verify that active charge port switches to BC1.2 after running `chargeoverride [port]` from console. Also, pass unit tests. BRANCH=Samus Change-Id: Ia1b48ca89641842d51be7eed3b92d36d3eedc9ef Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/227730 Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'include/charge_manager.h')
-rw-r--r--include/charge_manager.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/charge_manager.h b/include/charge_manager.h
index d32436ab81..d1b16cb7f3 100644
--- a/include/charge_manager.h
+++ b/include/charge_manager.h
@@ -15,6 +15,13 @@
#define CHARGE_CURRENT_UNINITIALIZED -1
#define CHARGE_VOLTAGE_UNINITIALIZED -1
+/* Port override settings */
+enum {
+ OVERRIDE_DONT_CHARGE = -2,
+ OVERRIDE_OFF = -1,
+ /* [0, PD_PORT_COUNT): Port# */
+};
+
#define POWER(charge_port) ((charge_port.current) * (charge_port.voltage))
/* Charge tasks report available current and voltage */
@@ -31,6 +38,9 @@ void charge_manager_update(int supplier,
/* Update charge ceiling for a given port */
void charge_manager_set_ceil(int port, int ceil);
+/* Select an 'override port', which is always the preferred charge port */
+void charge_manager_set_override(int port);
+
/* Returns the current active charge port, as determined by charge manager */
int charge_manager_get_active_charge_port(void);