diff --git a/board/kevin/board.c b/board/kevin/board.c index e4a822fee6..752ff8ef5b 100644 --- a/board/kevin/board.c +++ b/board/kevin/board.c @@ -47,6 +47,12 @@ static void tcpc_alert_event(enum gpio_signal signal) #endif } +static void overtemp_interrupt(enum gpio_signal signal) +{ + CPRINTS("AP_OVERTEMP asserted. Shutting down AP!"); + chipset_force_shutdown(); +} + #include "gpio_list.h" /******************************************************************************/ @@ -271,3 +277,16 @@ int board_get_version(void) return version; } + +static void overtemp_interrupt_enable(void) +{ + gpio_enable_interrupt(GPIO_AP_OVERTEMP); +} +DECLARE_HOOK(HOOK_CHIPSET_RESUME, overtemp_interrupt_enable, + HOOK_PRIO_DEFAULT); +static void overtemp_interrupt_disable(void) +{ + gpio_disable_interrupt(GPIO_AP_OVERTEMP); +} +DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, overtemp_interrupt_disable, + HOOK_PRIO_DEFAULT); diff --git a/board/kevin/gpio.inc b/board/kevin/gpio.inc index 3fb061ce54..e5cbbc1f38 100644 --- a/board/kevin/gpio.inc +++ b/board/kevin/gpio.inc @@ -35,6 +35,8 @@ 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) /* VR EN */ GPIO(AP_CORE_EN, PIN(7, 2), GPIO_OUT_LOW) @@ -107,7 +109,6 @@ 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(AP_OVERTEMP, PIN(7, 4), GPIO_INPUT) GPIO(SPI_SENSOR_CS_L, PIN(9, 4), GPIO_OUT_HIGH) GPIO(USB_C0_DISCHARGE, PIN(0, 3), GPIO_OUT_LOW)