From e41ee0e3eb6e7e192607801dbd60e3b7c68a69e2 Mon Sep 17 00:00:00 2001 From: Shawn Nematbakhsh Date: Thu, 12 May 2016 12:26:22 -0700 Subject: kevin: Handle WARM_RESET_REQ input Trigger warm reset on WARM_RESET_REQ assertion. BUG=chrome-os-partner:51926, chrome-os-partner:51923 BRANCH=None TEST=Toggle input pins from sysfs (GPIOs 11, 38), verify that ISR is called and proper action is taken. Signed-off-by: Shawn Nematbakhsh Signed-off-by: Douglas Anderson Change-Id: I38ef06bd99a7885647a27cef1a8371ad96c3f051 Reviewed-on: https://chromium-review.googlesource.com/338924 Commit-Ready: Shawn N Tested-by: Shawn N Reviewed-by: Mary Ruthven --- board/kevin/board.c | 6 ++++++ board/kevin/gpio.inc | 33 +++++++++++++++++---------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/board/kevin/board.c b/board/kevin/board.c index 752ff8ef5b..bee1fef478 100644 --- a/board/kevin/board.c +++ b/board/kevin/board.c @@ -53,6 +53,12 @@ static void overtemp_interrupt(enum gpio_signal signal) chipset_force_shutdown(); } +static void warm_reset_request_interrupt(enum gpio_signal signal) +{ + CPRINTS("WARM_RESET_REQ asserted."); + chipset_reset(0); +} + #include "gpio_list.h" /******************************************************************************/ diff --git a/board/kevin/gpio.inc b/board/kevin/gpio.inc index e5cbbc1f38..e6b94df0c6 100644 --- a/board/kevin/gpio.inc +++ b/board/kevin/gpio.inc @@ -17,26 +17,28 @@ GPIO_INT(USB_C0_PD_INT_L, PIN(6, 0), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event) GPIO_INT(USB_C1_PD_INT_L, PIN(6, 2), GPIO_INT_FALLING | GPIO_PULL_UP, tcpc_alert_event) -GPIO_INT(VOLUME_UP_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP, +GPIO_INT(VOLUME_UP_L, PIN(8, 2), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) -GPIO_INT(VOLUME_DOWN_L, PIN(8, 3), GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP, +GPIO_INT(VOLUME_DOWN_L, PIN(8, 3), GPIO_INT_BOTH | GPIO_PULL_UP, button_interrupt) -GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP, +GPIO_INT(POWER_BUTTON_L, PIN(0, 4), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) -GPIO_INT(LID_OPEN, PIN(9, 7), - GPIO_INT_BOTH | GPIO_INPUT | GPIO_SEL_1P8V, lid_interrupt) +GPIO_INT(LID_OPEN, PIN(9, 7), GPIO_INT_BOTH | GPIO_SEL_1P8V, + lid_interrupt) -GPIO_INT(PP5000_PG, PIN(7, 1), - GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP, power_signal_interrupt) -GPIO_INT(TPS65261_PG, PIN(7, 5), - GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP, power_signal_interrupt) +GPIO_INT(PP5000_PG, PIN(7, 1), GPIO_INT_BOTH | GPIO_PULL_UP, + power_signal_interrupt) +GPIO_INT(TPS65261_PG, PIN(7, 5), GPIO_INT_BOTH | GPIO_PULL_UP, + power_signal_interrupt) /* TODO: Remove PD in S3 for power savings */ -GPIO_INT(AP_EC_S3_S0_L, PIN(5, 4), - GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_DOWN, power_signal_interrupt) -GPIO_INT(AP_CORE_PG, PIN(6, 7), - GPIO_INT_BOTH | GPIO_INPUT | GPIO_PULL_UP, power_signal_interrupt) -GPIO_INT(AP_OVERTEMP, PIN(7, 4), GPIO_INT_RISING, - overtemp_interrupt) +GPIO_INT(AP_EC_S3_S0_L, PIN(5, 4), GPIO_INT_BOTH | GPIO_PULL_DOWN, + power_signal_interrupt) +GPIO_INT(AP_CORE_PG, PIN(6, 7), GPIO_INT_BOTH | GPIO_PULL_UP, + power_signal_interrupt) +GPIO_INT(WARM_RESET_REQ, PIN(7, 3), GPIO_INT_RISING | GPIO_PULL_DOWN, + warm_reset_request_interrupt) +GPIO_INT(AP_OVERTEMP, PIN(7, 4), GPIO_INT_RISING | GPIO_PULL_DOWN, + overtemp_interrupt) /* VR EN */ GPIO(AP_CORE_EN, PIN(7, 2), GPIO_OUT_LOW) @@ -108,7 +110,6 @@ GPIO(LID_360_L, PIN(3, 6), GPIO_INPUT | GPIO_SEL_1P8V) GPIO(BASE_SIXAXIS_INT_L, PIN(4, 0), GPIO_INPUT | GPIO_SEL_1P8V) GPIO(CCD_MODE_ODL, PIN(6, 3), GPIO_INPUT | GPIO_PULL_UP) GPIO(PP3300_S0_EN_L, PIN(7, 0), GPIO_OUT_HIGH) -GPIO(WARM_RESET_REQ, PIN(7, 3), GPIO_INPUT) GPIO(SPI_SENSOR_CS_L, PIN(9, 4), GPIO_OUT_HIGH) GPIO(USB_C0_DISCHARGE, PIN(0, 3), GPIO_OUT_LOW) -- cgit v1.2.1