summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Collyer <scollyer@google.com>2019-01-24 16:57:38 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-01-31 18:19:03 -0800
commitb0ae267a7451e440ae1d7b73dd42f905a8998f48 (patch)
tree9e52af83731dc68b8f191653c05d87e31c54d112
parent9bcaf16c7de255e2e906bef795f0b62b0a19c124 (diff)
downloadchrome-ec-b0ae267a7451e440ae1d7b73dd42f905a8998f48.tar.gz
hatch: Add support for PSL wake sources
This CL adds the alternate function defines for the 4 PSL wake source pins, populates the wake pins table, and enables the config option for PSL mode. BRANCH=none BUG=b:123343366 TEST=Use EC console command to force hiberate and verified EC wakes from hibernate via power button, EC reset, connecting AC power, and opening of lid switch. Change-Id: I6d5ad282f53e9090aafd4164510741d7cfe7907a Signed-off-by: Scott Collyer <scollyer@google.com> Reviewed-on: https://chromium-review.googlesource.com/1435971 Commit-Ready: Scott Collyer <scollyer@chromium.org> Tested-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org>
-rw-r--r--baseboard/hatch/baseboard.c11
-rw-r--r--baseboard/hatch/baseboard.h1
-rw-r--r--board/hatch/board.c6
-rw-r--r--board/hatch/gpio.inc10
4 files changed, 20 insertions, 8 deletions
diff --git a/baseboard/hatch/baseboard.c b/baseboard/hatch/baseboard.c
index 8419bd91ab..1347b066a7 100644
--- a/baseboard/hatch/baseboard.c
+++ b/baseboard/hatch/baseboard.c
@@ -35,6 +35,17 @@
#define USB_PD_PORT_TCPC_1 1
/******************************************************************************/
+/* Wake up pins */
+const enum gpio_signal hibernate_wake_pins[] = {
+ GPIO_LID_OPEN,
+ GPIO_ACOK_OD,
+ GPIO_POWER_BUTTON_L,
+ /* EC_RST_ODL needs to wake device while in PSL hibernate. */
+ GPIO_SYS_RESET_L,
+};
+const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
+
+/******************************************************************************/
/* Keyboard scan setting */
struct keyboard_scan_config keyscan_config = {
/*
diff --git a/baseboard/hatch/baseboard.h b/baseboard/hatch/baseboard.h
index 1ed7381022..2f3531aca2 100644
--- a/baseboard/hatch/baseboard.h
+++ b/baseboard/hatch/baseboard.h
@@ -19,6 +19,7 @@
/* EC Defines */
#define CONFIG_ADC
+#define CONFIG_HIBERNATE_PSL
#define CONFIG_PWM
#define CONFIG_VBOOT_HASH
#define CONFIG_VSTORE
diff --git a/board/hatch/board.c b/board/hatch/board.c
index cd6d7cd365..44ffa432cb 100644
--- a/board/hatch/board.c
+++ b/board/hatch/board.c
@@ -72,12 +72,6 @@ static void tcpc_alert_event(enum gpio_signal signal)
#include "gpio_list.h" /* Must come after other header files. */
/******************************************************************************/
-/* Wake up pins */
-const enum gpio_signal hibernate_wake_pins[] = {
-};
-const int hibernate_wake_pins_used = ARRAY_SIZE(hibernate_wake_pins);
-
-/******************************************************************************/
/* SPI devices */
const struct spi_device_t spi_devices[] = {
};
diff --git a/board/hatch/gpio.inc b/board/hatch/gpio.inc
index bbec264e83..a2355b44b1 100644
--- a/board/hatch/gpio.inc
+++ b/board/hatch/gpio.inc
@@ -9,10 +9,10 @@
* Note: Those with interrupt handlers must be declared first. */
/* Wake Source interrupts */
-GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH, lid_interrupt)
+GPIO_INT(LID_OPEN, PIN(D, 2), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, lid_interrupt)
GPIO_INT(WP_L, PIN(A, 1), GPIO_INT_BOTH, switch_interrupt) /* EC_WP_ODL */
GPIO_INT(POWER_BUTTON_L, PIN(0, 1), GPIO_INT_BOTH, power_button_interrupt) /* MECH_PWR_BTN_ODL */
-GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH, extpower_interrupt)
+GPIO_INT(ACOK_OD, PIN(0, 0), GPIO_INT_BOTH | GPIO_HIB_WAKE_HIGH, extpower_interrupt)
/* Power sequencing interrupts */
GPIO_INT(SLP_S0_L, PIN(D, 5), GPIO_INT_BOTH, power_signal_interrupt)
@@ -104,3 +104,9 @@ ALTERNATE(PIN_MASK(4, 0x01), 0, MODULE_PWM, 0) /* TA
/* ADC */
ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
+
+/* Power Switch Logic (PSL) inputs */
+ALTERNATE(PIN_MASK(D, 0x04), 0, MODULE_PMU, 0) /* GPIOD2 = LID_OPEN */
+ALTERNATE(PIN_MASK(0, 0x07), 0, MODULE_PMU, 0) /* GPIO00 = ACOK_OD,
+ GPIO01 = MECH_PWR_BTN_ODL
+ GPIO02 = EC_RST_ODL */