summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWai-Hong Tam <waihong@google.com>2021-08-23 15:26:58 -0700
committerCommit Bot <commit-bot@chromium.org>2021-08-24 17:40:10 +0000
commitd2c9b677dfaea4f89e6799dddc5f2583fddcfe4a (patch)
treed9d51f9e510472ebfe2376d9d00a908add921110
parent59fe6576b797d44c8d57c4e28945a4ec137fdf16 (diff)
downloadchrome-ec-d2c9b677dfaea4f89e6799dddc5f2583fddcfe4a.tar.gz
herobrine_npcx9: Enable PSL hibernate and define the PMU module
Enable the PSL mode for EC hibernate and define the PMU module. After EC enters hibernate, the PSL_OUT is off and the PPC chip is powered off. So the PPC chip can be woken up from the dead battery mode when the external AC is plugged. BRANCH=None BUG=b:193583152, b:196405396 TEST=Entered EC hibernate, plugging AC can wake EC up. Change-Id: I976d7fa7b7dfa57ee8e79501d5973710ef2192e7 Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3115436 Reviewed-by: Stephen Boyd <swboyd@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r--baseboard/herobrine/baseboard.h1
-rw-r--r--board/herobrine_npcx9/gpio.inc8
2 files changed, 7 insertions, 2 deletions
diff --git a/baseboard/herobrine/baseboard.h b/baseboard/herobrine/baseboard.h
index 5d272ea67e..8b014a4e77 100644
--- a/baseboard/herobrine/baseboard.h
+++ b/baseboard/herobrine/baseboard.h
@@ -36,6 +36,7 @@
#define CONFIG_FPU
#define CONFIG_PWM
#define CONFIG_PWM_DISPLIGHT
+#define CONFIG_HIBERNATE_PSL
#define CONFIG_VBOOT_HASH
diff --git a/board/herobrine_npcx9/gpio.inc b/board/herobrine_npcx9/gpio.inc
index c6e1320250..9e1b9b67d3 100644
--- a/board/herobrine_npcx9/gpio.inc
+++ b/board/herobrine_npcx9/gpio.inc
@@ -18,12 +18,12 @@ GPIO_INT(USB_C1_BC12_INT_L, PIN(8, 2), GPIO_INT_FALLING | GPIO_PULL_UP, usb1_
GPIO_INT(USB_A0_OC_ODL, PIN(F, 4), GPIO_INT_BOTH | GPIO_PULL_UP, usba_oc_interrupt)
/* System interrupts */
-GPIO_INT(CHG_ACOK_OD, PIN(D, 2), GPIO_INT_BOTH, extpower_interrupt) /* ACOK */
+GPIO_INT(CHG_ACOK_OD, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt) /* ACOK */
GPIO_INT(EC_PWR_BTN_ODL, PIN(0, 0), GPIO_INT_BOTH, power_button_interrupt) /* Power button */
GPIO_INT(EC_VOLDN_BTN_ODL, PIN(6, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Up button */
GPIO_INT(EC_VOLUP_BTN_ODL, PIN(C, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) /* Volume Down button */
GPIO_INT(EC_WP_ODL, PIN(D, 3), GPIO_INT_BOTH, switch_interrupt) /* Write protection */
-GPIO_INT(LID_OPEN_EC, PIN(0, 1), GPIO_INT_BOTH, lid_interrupt) /* Lid open */
+GPIO_INT(LID_OPEN_EC, PIN(0, 1), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt) /* Lid open */
GPIO_INT(AP_RST_L, PIN(5, 1), GPIO_INT_BOTH, chipset_ap_rst_interrupt) /* PMIC to signal AP reset */
GPIO_INT(PS_HOLD, PIN(A, 6), GPIO_INT_BOTH | GPIO_PULL_DOWN, power_signal_interrupt) /* Indicate when AP triggers reset/shutdown */
GPIO_INT(AP_SUSPEND, PIN(5, 7), GPIO_INT_BOTH, power_signal_interrupt) /* Suspend signal from PMIC */
@@ -158,6 +158,10 @@ ALTERNATE(PIN_MASK(4, 0xC0), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SDO (GPIO47),
ALTERNATE(PIN_MASK(5, 0x28), 1, MODULE_SPI, GPIO_SEL_1P8V) /* SHI_SCLK (GPIO55), SHI_CS# (GPIO53) */
ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3 (GPIO80) - KB_BL_PWM */
ALTERNATE(PIN_MASK(B, 0x80), 1, MODULE_PWM, 0) /* PWM5 (GPIOB7) - EDP_BKLTCTL */
+ALTERNATE(PIN_MASK(D, 0x04), 1, MODULE_PMU, 0) /* PSL_IN1 (GPIOD2) - ACOK_OD */
+ALTERNATE(PIN_MASK(0, 0x01), 1, MODULE_PMU, 0) /* PSL_IN2 (GPIO00) - EC_PWR_BTN_ODL */
+ALTERNATE(PIN_MASK(0, 0x02), 1, MODULE_PMU, 0) /* PSL_IN3 (GPIO01) - LID_OPEN_EC */
+ALTERNATE(PIN_MASK(0, 0x04), 1, MODULE_PMU, 0) /* PSL_IN4 (GPIO02) - RTC_EC_WAKE_ODL */
/* Keyboard */
#define GPIO_KB_INPUT (GPIO_INPUT | GPIO_PULL_UP)