From c651715a2c7ba39717f8485fc0b92c83cef431aa Mon Sep 17 00:00:00 2001 From: Vincent Palatin Date: Tue, 21 Feb 2012 18:18:15 +0000 Subject: [PATCH] stm32l: add keyboard configuration for ADV and Daisy boards Set the keyboard GPIO interrupts and task for the Daisy and ADV boards. Signed-off-by: Vincent Palatin BUG=None TEST=make BOARD=adv && make BOARD=daisy run EC firmware on ADV board. Change-Id: I01c7f0112b7ab3382e04ad032a86fb0f3878b02b --- board/adv/board.c | 8 ++++++++ board/adv/board.h | 11 +++++++++++ board/adv/ec.tasklist | 1 + board/daisy/board.c | 8 ++++++++ board/daisy/board.h | 11 +++++++++++ board/daisy/ec.tasklist | 1 + 6 files changed, 40 insertions(+) diff --git a/board/adv/board.c b/board/adv/board.c index b4321f2d4c..58f7cd6c56 100644 --- a/board/adv/board.c +++ b/board/adv/board.c @@ -21,6 +21,14 @@ const struct gpio_info gpio_list[GPIO_COUNT] = { {"XPSHOLD", GPIO_A, (1<<11), GPIO_INT_RISING, gaia_power_event}, {"CHARGER_INT", GPIO_B, (1<<0), GPIO_INT_RISING, NULL}, {"LID_OPEN", GPIO_C, (1<<13), GPIO_INT_BOTH, NULL}, + {"KB_COL00", GPIO_C, (1<<8), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL01", GPIO_C, (1<<9), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL02", GPIO_C, (1<<10), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL03", GPIO_C, (1<<11), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL04", GPIO_C, (1<<12), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL05", GPIO_C, (1<<14), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL06", GPIO_C, (1<<15), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL07", GPIO_D, (1<<2), GPIO_INT_BOTH, matrix_interrupt}, /* Other inputs */ /* Outputs */ {"EN_PP1350", GPIO_A, (1<<9), GPIO_OUT_LOW, NULL}, diff --git a/board/adv/board.h b/board/adv/board.h index a3793d281d..c101bb1869 100644 --- a/board/adv/board.h +++ b/board/adv/board.h @@ -24,6 +24,15 @@ enum gpio_signal { GPIO_SOC1V8_XPSHOLD, /* App Processor ON */ GPIO_CHARGER_INT, GPIO_LID_OPEN, /* LID switch detection */ + /* Keyboard inputs */ + KB_COL00, + KB_COL01, + KB_COL02, + KB_COL03, + KB_COL04, + KB_COL05, + KB_COL06, + KB_COL07, /* Other inputs */ /* Outputs */ GPIO_EN_PP1350, /* DDR 1.35v rail enable */ @@ -40,4 +49,6 @@ enum gpio_signal { void configure_board(void); +void matrix_interrupt(enum gpio_signal signal); + #endif /* __BOARD_H */ diff --git a/board/adv/ec.tasklist b/board/adv/ec.tasklist index 6c7049edae..daf1a32c47 100644 --- a/board/adv/ec.tasklist +++ b/board/adv/ec.tasklist @@ -15,5 +15,6 @@ */ #define CONFIG_TASK_LIST \ TASK(WATCHDOG, watchdog_task, NULL) \ + TASK(KEYSCAN, keyboard_scan_task, NULL) \ TASK(GAIAPOWER, gaia_power_task, NULL) \ TASK(CONSOLE, console_task, NULL) diff --git a/board/daisy/board.c b/board/daisy/board.c index fdda1f0f1f..e98e858ddc 100644 --- a/board/daisy/board.c +++ b/board/daisy/board.c @@ -21,6 +21,14 @@ const struct gpio_info gpio_list[GPIO_COUNT] = { {"XPSHOLD", GPIO_A, (1<<11), GPIO_INT_RISING, gaia_power_event}, {"CHARGER_INT", GPIO_B, (1<<0), GPIO_INT_RISING, NULL}, {"LID_OPEN", GPIO_C, (1<<13), GPIO_INT_BOTH, NULL}, + {"KB_COL00", GPIO_C, (1<<8), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL01", GPIO_C, (1<<9), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL02", GPIO_C, (1<<10), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL03", GPIO_C, (1<<11), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL04", GPIO_C, (1<<12), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL05", GPIO_C, (1<<14), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL06", GPIO_C, (1<<15), GPIO_INT_BOTH, matrix_interrupt}, + {"KB_COL07", GPIO_D, (1<<2), GPIO_INT_BOTH, matrix_interrupt}, /* Other inputs */ /* Outputs */ {"EN_PP1350", GPIO_A, (1<<2), GPIO_OUT_LOW, NULL}, diff --git a/board/daisy/board.h b/board/daisy/board.h index ef0be9488c..8af5e01398 100644 --- a/board/daisy/board.h +++ b/board/daisy/board.h @@ -24,6 +24,15 @@ enum gpio_signal { GPIO_SOC1V8_XPSHOLD, /* App Processor ON */ GPIO_CHARGER_INT, GPIO_LID_OPEN, /* LID switch detection */ + /* Keyboard inputs */ + KB_COL00, + KB_COL01, + KB_COL02, + KB_COL03, + KB_COL04, + KB_COL05, + KB_COL06, + KB_COL07, /* Other inputs */ /* Outputs */ GPIO_EN_PP1350, /* DDR 1.35v rail enable */ @@ -40,4 +49,6 @@ enum gpio_signal { void configure_board(void); +void matrix_interrupt(enum gpio_signal signal); + #endif /* __BOARD_H */ diff --git a/board/daisy/ec.tasklist b/board/daisy/ec.tasklist index 6c7049edae..daf1a32c47 100644 --- a/board/daisy/ec.tasklist +++ b/board/daisy/ec.tasklist @@ -15,5 +15,6 @@ */ #define CONFIG_TASK_LIST \ TASK(WATCHDOG, watchdog_task, NULL) \ + TASK(KEYSCAN, keyboard_scan_task, NULL) \ TASK(GAIAPOWER, gaia_power_task, NULL) \ TASK(CONSOLE, console_task, NULL)