diff options
author | Rong Chang <rongchang@chromium.org> | 2017-02-14 09:59:10 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-03-22 06:28:43 -0700 |
commit | 781398046af9cb6a957002ae78be6af2727e38f3 (patch) | |
tree | fe45ad4258e2548ba77ba28a3032dd27e3782a3a /board | |
parent | a73c69c9356c0ab78819da02a4a50c9b82c46066 (diff) | |
download | chrome-ec-781398046af9cb6a957002ae78be6af2727e38f3.tar.gz |
rowan: add support for recovery mode
Rowan enters recovery mode by pressing volume up + volume down keys.
BUG=chrome-os-partner:62673
TEST=press POWER+VOL_UP+VOL_DOWN, rowan enters recovery
BRANCH=none
Change-Id: I7be33a7e4d820568e7d31dc8a17af7fa96b2d3ac
Signed-off-by: Rong Chang <rongchang@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/442344
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/rowan/board.c | 8 | ||||
-rw-r--r-- | board/rowan/board.h | 10 | ||||
-rw-r--r-- | board/rowan/gpio.inc | 2 |
3 files changed, 20 insertions, 0 deletions
diff --git a/board/rowan/board.c b/board/rowan/board.c index 4e64d35674..90e32e21b0 100644 --- a/board/rowan/board.c +++ b/board/rowan/board.c @@ -10,6 +10,7 @@ #include "als.h" #include "atomic.h" #include "battery.h" +#include "button.h" #include "charge_manager.h" #include "charge_state.h" #include "charger.h" @@ -155,6 +156,13 @@ const struct temp_sensor_t temp_sensors[] = { }; BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); +const struct button_config buttons[CONFIG_BUTTON_COUNT] = { + [BUTTON_VOLUME_DOWN] = {"Volume Down", KEYBOARD_BUTTON_VOLUME_DOWN, + GPIO_VOLUME_DOWN_L, 30 * MSEC, 0}, + [BUTTON_VOLUME_UP] = {"Volume Up", KEYBOARD_BUTTON_VOLUME_UP, + GPIO_VOLUME_UP_L, 30 * MSEC, 0}, +}; + struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = { { .port_addr = 0, /* port idx */ diff --git a/board/rowan/board.h b/board/rowan/board.h index bb4c2794fb..1e6803f24e 100644 --- a/board/rowan/board.h +++ b/board/rowan/board.h @@ -16,6 +16,10 @@ #define CONFIG_CMD_SPI_XFER #define CONFIG_CMD_GPIO_EXTENDED +/* Button */ +#define CONFIG_BUTTON_COUNT 2 +#define CONFIG_BUTTON_RECOVERY + /* Accelero meter and gyro sensor */ #define CONFIG_ACCELGYRO_BMI160 #define CONFIG_ALS_ISL29035 @@ -182,6 +186,12 @@ enum adc_channel { ADC_CH_COUNT }; +enum button { + BUTTON_VOLUME_DOWN = 0, + BUTTON_VOLUME_UP = 1, + BUTTON_COUNT +}; + enum temp_sensor_id { #ifdef CONFIG_TEMP_SENSOR_TMP432 /* TMP432 local and remote sensors */ diff --git a/board/rowan/gpio.inc b/board/rowan/gpio.inc index d87bbac522..e6d4f1a1d8 100644 --- a/board/rowan/gpio.inc +++ b/board/rowan/gpio.inc @@ -16,6 +16,8 @@ GPIO_INT(PD_MCU_INT, PIN(C, 15), GPIO_INT_RISING, pd_mcu_interrupt) / GPIO_INT(BC12_CABLE_INT, PIN(C, 7), GPIO_INT_FALLING | GPIO_PULL_UP, usb_evt) /* interrupt from BC12 and CABLE_DET */ GPIO_INT(POWER_BUTTON_L, PIN(B, 5), GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) GPIO_INT(SPI1_NSS, PIN(A, 4), GPIO_INT_BOTH | GPIO_PULL_UP, spi_event) /* SPI Chip Select */ +GPIO_INT(VOLUME_DOWN_L, PIN(A, 14), GPIO_INT_BOTH, button_interrupt) +GPIO_INT(VOLUME_UP_L, PIN(A, 13), GPIO_INT_BOTH, button_interrupt) /* Inputs without interrupt handlers */ GPIO(5V_POWER_GOOD, PIN(A, 1), GPIO_INPUT) |