summaryrefslogtreecommitdiff
path: root/include/charge_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/charge_manager.h')
-rw-r--r--include/charge_manager.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/include/charge_manager.h b/include/charge_manager.h
index 8758c3a19c..6cfd6cc7ce 100644
--- a/include/charge_manager.h
+++ b/include/charge_manager.h
@@ -51,8 +51,21 @@ enum dualrole_capabilities {
/* Called by charging tasks to indicate partner dualrole capability change */
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);
+/*
+ * Charge ceiling can be set independently by different tasks / functions,
+ * for different purposes.
+ */
+enum ceil_requestor {
+ /* Set by PD task, during negotiation */
+ CEIL_REQUESTOR_PD,
+ /* Set by host commands */
+ CEIL_REQUESTOR_HOST,
+ /* Number of ceiling groups */
+ CEIL_REQUESTOR_COUNT,
+};
+
+/* Update charge ceiling for a given port / requestor */
+void charge_manager_set_ceil(int port, enum ceil_requestor requestor, int ceil);
/* Select an 'override port', which is always the preferred charge port */
int charge_manager_set_override(int port);