summaryrefslogtreecommitdiff
path: root/include/charge_manager.h
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2015-02-09 11:57:37 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-02-11 04:48:32 +0000
commitc1fe8f2173c0c0ccad4c3e48f14bfb34e97ff684 (patch)
treed62996cce1ebdc05333b0b3aa20b8e269619c976 /include/charge_manager.h
parentf154f32f9ed483bc974c7a0f21ed641cf308a7b0 (diff)
downloadchrome-ec-c1fe8f2173c0c0ccad4c3e48f14bfb34e97ff684.tar.gz
charge_manager: Store dualrole capability in charge manager
Since charge manager is now informed of all capability changes as they happen, it makes sense to store the port capability within charge manager, rather than storing in pd. BUG=chrome-os-partner:36390 TEST=Manual on Samus. Insert 1A Apple charger, verify correct detection. Run 'chgoverride -2' to prevent charging, then repeatedly insert + remove a dual-role charger on the other charge port. Verify that charging is still prevented. Finally, insert a dedicated charger and verify that the override is removed. Also, pass unit tests and verify correct detection in various scenarios with various chargers. BRANCH=Samus Change-Id: I3669050b37ddd67f6608bf790a07e74f86b6ac01 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/247724 Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'include/charge_manager.h')
-rw-r--r--include/charge_manager.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/charge_manager.h b/include/charge_manager.h
index 70afd2135e..0b5c4f7cb4 100644
--- a/include/charge_manager.h
+++ b/include/charge_manager.h
@@ -26,8 +26,15 @@ void charge_manager_update_charge(int supplier,
int port,
struct charge_port_info *charge);
+/* Partner port dualrole capabilities */
+enum dualrole_capabilities {
+ CAP_UNKNOWN,
+ CAP_DUALROLE,
+ CAP_DEDICATED,
+};
+
/* Called by charging tasks to indicate partner dualrole capability change */
-void charge_manager_update_dualrole(int port);
+void charge_manager_update_dualrole(int port, enum dualrole_capabilities cap);
/* Update charge ceiling for a given port */
void charge_manager_set_ceil(int port, int ceil);