diff options
author | Mulin Chao <mlchao@nuvoton.com> | 2017-01-19 17:30:35 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-01-19 21:27:50 -0800 |
commit | 0620490add051aa03b327a9c7dfea606195b7631 (patch) | |
tree | 71719a13c0f22e8eb1e482cd82d91a7cfabfdf9e | |
parent | 3baf37633e4e80f356d92ee5da0ddc0a0b463849 (diff) | |
download | chrome-ec-0620490add051aa03b327a9c7dfea606195b7631.tar.gz |
npcx: gpio: Add GPIO_INT support for KSI pins
On tablet platform, ec isn't in charge of keyboard and KSI pins are free
to use. This CL adds MIWU group and GPIO's ISR for KSI pins if there is
no keyboard scan task.
BRANCH=none
BUG=none
TEST=test all KSI pins for GPIO_INT on npcx_evb.
Change-Id: I76c8e48c067b6cb84e483eb94b104eb1998987be
Signed-off-by: Mulin Chao <mlchao@nuvoton.com>
Reviewed-on: https://chromium-review.googlesource.com/430554
Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r-- | chip/npcx/gpio.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/chip/npcx/gpio.c b/chip/npcx/gpio.c index f0beddbfc0..1a05074c44 100644 --- a/chip/npcx/gpio.c +++ b/chip/npcx/gpio.c @@ -148,6 +148,7 @@ const struct gpio_wui_item gpio_wui_table[2][8] = { NPCX_GPIO(1, 7), }, NPCX_IRQ_WKINTB_1 }, /* Group C */ +#ifdef HAS_TASK_KEYSCAN { { NPCX_GPIO_NONE, NPCX_GPIO_NONE, NPCX_GPIO_NONE, @@ -157,6 +158,17 @@ const struct gpio_wui_item gpio_wui_table[2][8] = { NPCX_GPIO_NONE, NPCX_GPIO_NONE, }, NPCX_IRQ_COUNT }, +#else + { { NPCX_GPIO(3, 1), + NPCX_GPIO(3, 0), + NPCX_GPIO(2, 7), + NPCX_GPIO(2, 6), + NPCX_GPIO(2, 5), + NPCX_GPIO(2, 4), + NPCX_GPIO(2, 3), + NPCX_GPIO(2, 2), }, + NPCX_IRQ_KSI_WKINTC_1 }, +#endif /* Group D */ { { NPCX_GPIO(2, 0), NPCX_GPIO(2, 1), @@ -828,6 +840,10 @@ GPIO_IRQ_FUNC(__gpio_wk0b_interrupt , NPCX_IRQ_TWD_WKINTB_0); GPIO_IRQ_FUNC(__gpio_wk0c_interrupt , NPCX_IRQ_WKINTC_0); GPIO_IRQ_FUNC(__gpio_wk1a_interrupt , NPCX_IRQ_WKINTA_1); GPIO_IRQ_FUNC(__gpio_wk1b_interrupt , NPCX_IRQ_WKINTB_1); +#ifndef HAS_TASK_KEYSCAN +/* Delcare GPIO irq functions for KSI pins if there's no keyboard scan task, */ +GPIO_IRQ_FUNC(__gpio_wk1c_interrupt , NPCX_IRQ_KSI_WKINTC_1); +#endif GPIO_IRQ_FUNC(__gpio_wk1d_interrupt , NPCX_IRQ_WKINTD_1); GPIO_IRQ_FUNC(__gpio_wk1e_interrupt , NPCX_IRQ_WKINTE_1); GPIO_IRQ_FUNC(__gpio_wk1f_interrupt , NPCX_IRQ_WKINTF_1); @@ -840,6 +856,9 @@ DECLARE_IRQ(NPCX_IRQ_WKINTC_0, __gpio_wk0c_interrupt, 2); DECLARE_IRQ(NPCX_IRQ_WKINTEFGH_0, __gpio_wk0efgh_interrupt, 2); DECLARE_IRQ(NPCX_IRQ_WKINTA_1, __gpio_wk1a_interrupt, 2); DECLARE_IRQ(NPCX_IRQ_WKINTB_1, __gpio_wk1b_interrupt, 2); +#ifndef HAS_TASK_KEYSCAN +DECLARE_IRQ(NPCX_IRQ_KSI_WKINTC_1, __gpio_wk1c_interrupt, 2); +#endif DECLARE_IRQ(NPCX_IRQ_WKINTD_1, __gpio_wk1d_interrupt, 2); DECLARE_IRQ(NPCX_IRQ_WKINTE_1, __gpio_wk1e_interrupt, 2); #ifdef CONFIG_HOSTCMD_SPS |