summaryrefslogtreecommitdiff
path: root/board/cerise
diff options
context:
space:
mode:
authorMike Lee <mike5@huaqin.corp-partner.google.com>2020-12-10 22:45:43 +0800
committerCommit Bot <commit-bot@chromium.org>2020-12-15 09:52:40 +0000
commit160208413d16840428e42ecae18457e862e6ed49 (patch)
treedd126576f2da170fa7c2a950c7109737add27c3e /board/cerise
parent713535b5afa31374e109a4d822cf2db01541d1b1 (diff)
downloadchrome-ec-160208413d16840428e42ecae18457e862e6ed49.tar.gz
Cerise: Enable DC-DC mode ctrl
Enable DC-DC mode ctrl to solve S3 power consumption over spec BUG=b:173343526 BRANCH=firmware-kukui-12573.B TEST=test S3 power consumption meet spec. Signed-off-by: Mike Lee <mike5@huaqin.corp-partner.google.com> Change-Id: Ia9df2bbe9b86030243c399b8e2ffc2f9993f5e9b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2584542 Reviewed-by: Chen-Tsung Hsieh <chentsung@chromium.org> Reviewed-by: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'board/cerise')
-rw-r--r--board/cerise/board.c19
-rw-r--r--board/cerise/gpio.inc2
2 files changed, 21 insertions, 0 deletions
diff --git a/board/cerise/board.c b/board/cerise/board.c
index 71f8f5a742..99c80c60fb 100644
--- a/board/cerise/board.c
+++ b/board/cerise/board.c
@@ -324,6 +324,9 @@ static void board_init(void)
/* Enable BC12 interrupt */
gpio_enable_interrupt(GPIO_BC12_EC_INT_ODL);
+
+ /* Enable USM mode */
+ ioex_set_level(IOEX_5V_DC_DC_MODE_CTRL, 1);
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
@@ -447,6 +450,22 @@ static void board_chipset_shutdown(void)
}
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
+/* Called on AP S3 -> S0 transition, 5V DC-DC ctrl */
+static void board_chipset_resume(void)
+{
+ /* Enable USM mode */
+ ioex_set_level(IOEX_5V_DC_DC_MODE_CTRL, 1);
+}
+DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
+
+/* Called on AP S0 -> S3 transition */
+static void board_chipset_suspend(void)
+{
+ /* Enable Normal mode */
+ ioex_set_level(IOEX_5V_DC_DC_MODE_CTRL, 0);
+}
+DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
+
int board_get_charger_i2c(void)
{
/* TODO(b:138415463): confirm the bus allocation for future builds */
diff --git a/board/cerise/gpio.inc b/board/cerise/gpio.inc
index 51972ec367..fbc887f740 100644
--- a/board/cerise/gpio.inc
+++ b/board/cerise/gpio.inc
@@ -87,6 +87,8 @@ GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
IOEX(PWR_LED_WHITE_L, EXPIN(0, 1, 4), GPIO_OUT_HIGH)
IOEX(BAT_LED_WHITE_L, EXPIN(0, 1, 3), GPIO_OUT_HIGH)
IOEX(BAT_LED_AMBER_L, EXPIN(0, 1, 2), GPIO_OUT_HIGH)
+IOEX(5V_DC_DC_MODE_CTRL, EXPIN(0, 0, 7), GPIO_OUT_LOW)
+
/*
* TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and
* gpio expander framework has landed.