summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRong Chang <rongchang@chromium.org>2017-02-14 09:59:10 +0800
committerchrome-bot <chrome-bot@chromium.org>2017-03-22 06:28:43 -0700
commit781398046af9cb6a957002ae78be6af2727e38f3 (patch)
treefe45ad4258e2548ba77ba28a3032dd27e3782a3a
parenta73c69c9356c0ab78819da02a4a50c9b82c46066 (diff)
downloadchrome-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>
-rw-r--r--board/rowan/board.c8
-rw-r--r--board/rowan/board.h10
-rw-r--r--board/rowan/gpio.inc2
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)