summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2021-05-17 20:26:39 -0700
committerCommit Bot <commit-bot@chromium.org>2021-05-19 20:26:23 +0000
commit848a2cb8c29a8b5ca38c6d83578f78f01e496cd1 (patch)
tree98a65c57ee6f5a9d400c658b70ca498b0300c7e1 /include
parent48c2e894a960a186a1b19b21ad270d7a2f62ed00 (diff)
downloadchrome-ec-848a2cb8c29a8b5ca38c6d83578f78f01e496cd1.tar.gz
dedede: Rework `extpower_is_present()`
The dedede boards erroneously assumed that if VBUS was present, then "extpower" was present. "extpower" is generally connected to the ACOK signal for the battery charger IC. It indicates that the voltage present at the switching node is valid for bucking or boosting. For our Type-C systems, this needs to be at least 4V. However, just because VBUS is present doesn't mean that the voltage is present at the switching node. The FETs on the selected charge port needs to be enabled first. This commit simply changes the logic to check the battery charger ICs' ACOK status to reflect whether extpower is present. BUG=b:187965740 BRANCH=dedede TEST=Build and flash drawcia and madoo, verify that "AC on" prints are emitted when the charge port is selected and not just when VBUS appears on the port. Signed-off-by: Aseda Aboagye <aaboagye@google.com> Change-Id: If5a4a10d502f2f08ccf1d3228e42f48fa6d45909 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2901254 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/extpower.h8
-rw-r--r--include/usb_pd.h6
2 files changed, 8 insertions, 6 deletions
diff --git a/include/extpower.h b/include/extpower.h
index b2b57943ca..1e9f7976e6 100644
--- a/include/extpower.h
+++ b/include/extpower.h
@@ -8,9 +8,17 @@
#ifndef __CROS_EC_EXTPOWER_H
#define __CROS_EC_EXTPOWER_H
+#include "common.h"
+
enum gpio_signal; /* from gpio_signal.h */
/**
+ * Run board specific code to update extpower status. The default
+ * implementation does nothing, but a board may override it.
+ */
+__override_proto void board_check_extpower(void);
+
+/**
* Return non-zero if external power is present.
*/
int extpower_is_present(void);
diff --git a/include/usb_pd.h b/include/usb_pd.h
index c0472e283b..ba29e04c86 100644
--- a/include/usb_pd.h
+++ b/include/usb_pd.h
@@ -3327,12 +3327,6 @@ __override_proto int svdm_tbt_compat_attention(int port, uint32_t *payload);
__override_proto enum ec_pd_port_location board_get_pd_port_location(int port);
-/**
- * Can be called whenever VBUS presence changes. The default implementation
- * does nothing, but a board may override it.
- */
-__override_proto void board_vbus_present_change(void);
-
/****************************************************************************
* TCPC CC/Rp Management
*/