summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-05-21 13:27:21 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-29 06:27:32 -0700
commite899f33e51b863c4445992b90ddae8959dd09df9 (patch)
tree577668aef5cdbcb8129ba806a520ecd17cbb4107
parent832e76b19ddbb4eba6d6c6e71516ebdcf288f673 (diff)
downloadchrome-ec-e899f33e51b863c4445992b90ddae8959dd09df9.tar.gz
chgmgr: Allow boards to customize supplier_priority
Currently, supplier_priority is shared across boards. This patch makes it weakly defined so that boards can customize it. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=none BRANCH=none TEST=Verify BC12, PD work on Flapjack. buildall. Change-Id: Ie1e73758c611414512425121164bf7d56cf02697 Reviewed-on: https://chromium-review.googlesource.com/1622889 Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--board/host/board.h3
-rw-r--r--common/charge_manager.c4
-rw-r--r--include/charge_manager.h6
3 files changed, 8 insertions, 5 deletions
diff --git a/board/host/board.h b/board/host/board.h
index 2d7c492238..714d1346b0 100644
--- a/board/host/board.h
+++ b/board/host/board.h
@@ -54,9 +54,6 @@ enum {
CHARGE_SUPPLIER_TEST_COUNT
};
-/* Custom charge_manager priority table is defined in test code */
-extern const int supplier_priority[];
-
/* Standard-current Rp */
#define PD_SRC_VNC PD_SRC_DEF_VNC_MV
#define PD_SRC_RD_THRESHOLD PD_SRC_DEF_RD_THRESH_MV
diff --git a/common/charge_manager.c b/common/charge_manager.c
index 8095c63517..432c661a36 100644
--- a/common/charge_manager.c
+++ b/common/charge_manager.c
@@ -29,7 +29,7 @@
PD_T_SAFE_0V + 500 * MSEC)
/*
- * Charge supplier priority: lower number indicates higher priority.
+ * Default charge supplier priority
*
* - Always pick dedicated charge if present since that is the best product
* decision.
@@ -44,7 +44,7 @@
* - Last, pick one from the rest suppliers. Also note that some boards assume
* wireless suppliers as low priority.
*/
-test_mockable const int supplier_priority[] = {
+__attribute__((weak)) const int supplier_priority[] = {
#if CONFIG_DEDICATED_CHARGE_PORT_COUNT > 0
[CHARGE_SUPPLIER_DEDICATED] = 0,
#endif
diff --git a/include/charge_manager.h b/include/charge_manager.h
index cb32eb623d..938d323fbd 100644
--- a/include/charge_manager.h
+++ b/include/charge_manager.h
@@ -54,6 +54,12 @@ enum charge_supplier {
CHARGE_SUPPLIER_COUNT
};
+/*
+ * Charge supplier priority: lower number indicates higher priority.
+ * Default priority is in charge_manager.c. It can be overridden by boards.
+ */
+extern const int supplier_priority[];
+
/* Charge tasks report available current and voltage */
struct charge_port_info {
int current;