summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2013-11-20 14:11:30 -0600
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-11-21 07:17:19 +0000
commit24fdf4e554f542488ba268fece6e62b2014357fd (patch)
tree8c59eb2849f25a4750744fc86eceda84d6daf0ab
parent8db204073ac55ee1f5ba6a450983dbad0c9d0a36 (diff)
downloadchrome-ec-24fdf4e554f542488ba268fece6e62b2014357fd.tar.gz
rambi: use gpio for keyboard irq
The rambi board has issues using the SERIRQ method for triggering the keyboard IRQ. Namely, the current level-shifter in place for the bidrectional SERIRQ signal introduces delay resulting in the SERIRQ being out of phase with the clock. Moreover, there appears to be a mismatch of expectations with the number of start frames on the SEIRQ line. Bay Trail uses a fixed 8 while the TI docs suggest it only supports 6. BUG=chrome-os-partner:23965 BRANCH=None TEST=Built and booted rambi with keyboard working in kernel with interrupts. CQ-DEPEND=CL:177223 Change-Id: I05c2b113d801b3fc434a402620cebae0301839f2 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/177189 Tested-by: Bernie Thompson <bhthompson@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--board/rambi/board.c3
-rw-r--r--board/rambi/board.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/board/rambi/board.c b/board/rambi/board.c
index 1dc0ced203..036678f7cd 100644
--- a/board/rambi/board.c
+++ b/board/rambi/board.c
@@ -110,6 +110,7 @@ const struct gpio_info gpio_list[] = {
{"VCORE_EN", LM4_GPIO_C, (1<<5), GPIO_OUT_LOW, NULL},
{"WLAN_OFF_L", LM4_GPIO_J, (1<<4), GPIO_OUT_LOW, NULL},
{"PCH_SCI_L", LM4_GPIO_M, (1<<1), GPIO_ODR_HIGH, NULL},
+ {"KBD_IRQ_L", LM4_GPIO_M, (1<<4), GPIO_OUT_HIGH, NULL},
};
BUILD_ASSERT(ARRAY_SIZE(gpio_list) == GPIO_COUNT);
@@ -122,7 +123,7 @@ const struct gpio_alt_func gpio_alt_funcs[] = {
{GPIO_B, 0x80, 3, MODULE_I2C, GPIO_OPEN_DRAIN}, /* I2C5 SDA */
{GPIO_D, 0x0f, 2, MODULE_SPI}, /* SPI1 */
{GPIO_L, 0x3f, 15, MODULE_LPC}, /* LPC */
- {GPIO_M, 0x31, 15, MODULE_LPC}, /* LPC */
+ {GPIO_M, 0x21, 15, MODULE_LPC}, /* LPC */
{GPIO_N, 0x50, 1, MODULE_PWM_LED, GPIO_OPEN_DRAIN}, /* FAN0PWM 3&4 */
};
const int gpio_alt_funcs_count = ARRAY_SIZE(gpio_alt_funcs);
diff --git a/board/rambi/board.h b/board/rambi/board.h
index 7d283c80f1..8d4731db70 100644
--- a/board/rambi/board.h
+++ b/board/rambi/board.h
@@ -23,6 +23,7 @@
#define CONFIG_CMD_GSV
#define CONFIG_EXTPOWER_GPIO
#define CONFIG_KEYBOARD_COL2_INVERTED
+#define CONFIG_KEYBOARD_IRQ_GPIO GPIO_KBD_IRQ_L
#define CONFIG_KEYBOARD_PROTOCOL_8042
#define CONFIG_LED_COMMON
#undef CONFIG_PECI
@@ -116,6 +117,7 @@ enum gpio_signal {
GPIO_VCORE_EN, /* Enable core power supplies */
GPIO_WLAN_OFF_L, /* Disable WiFi radio */
GPIO_PCH_SCI_L, /* Assert SCI to PCH */
+ GPIO_KBD_IRQ_L, /* Negative edge triggered irq. */
/* Number of GPIOs; not an actual GPIO */
GPIO_COUNT