From d2c9b677dfaea4f89e6799dddc5f2583fddcfe4a Mon Sep 17 00:00:00 2001 From: Wai-Hong Tam Date: Mon, 23 Aug 2021 15:26:58 -0700 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3115436 Reviewed-by: Stephen Boyd Reviewed-by: Keith Short --- baseboard/herobrine/baseboard.h | 1 + board/herobrine_npcx9/gpio.inc | 8 ++++++-- 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) -- cgit v1.2.1