diff options
author | Dino Li <dino.li@ite.com.tw> | 2015-03-20 17:14:45 +0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-03-22 03:13:58 +0000 |
commit | 2c3cf4d1a9d6ed732985ea495e8ebfe1d09a916b (patch) | |
tree | 8903dec2bb649fdccfe7af9edcf6cb4c6275f3a6 /board | |
parent | c12181d9af8fbe0b61ac522e813bec463571dda5 (diff) | |
download | chrome-ec-2c3cf4d1a9d6ed732985ea495e8ebfe1d09a916b.tar.gz |
it8380dev: add KBC/KMSC module
1. DLM 16KB.
2. Add KBC/KMSC module for emulation board.
Signed-off-by: Dino Li <dino.li@ite.com.tw>
BRANCH=none
BUG=none
TEST=EVB + x86 MB can boot into DOS and keyboard works.
Change-Id: Ia5cc2d4f1733ce07879d410b0447b2d48e50cd95
Reviewed-on: https://chromium-review.googlesource.com/259923
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Dino Li <dino.li@ite.com.tw>
Commit-Queue: Dino Li <dino.li@ite.com.tw>
Diffstat (limited to 'board')
-rw-r--r-- | board/it8380dev/board.c | 21 | ||||
-rw-r--r-- | board/it8380dev/board.h | 14 | ||||
-rw-r--r-- | board/it8380dev/ec.tasklist | 7 | ||||
-rw-r--r-- | board/it8380dev/gpio.inc | 47 |
4 files changed, 61 insertions, 28 deletions
diff --git a/board/it8380dev/board.c b/board/it8380dev/board.c index c18aa58d41..8448c98e30 100644 --- a/board/it8380dev/board.c +++ b/board/it8380dev/board.c @@ -16,6 +16,11 @@ #include "adc.h" #include "adc_chip.h" #include "ec2i_chip.h" +#include "power_button.h" +#include "lid_switch.h" +#include "keyboard_scan.h" +#include "timer.h" +#include "lpc.h" /* Test GPIO interrupt function that toggles one LED. */ void test_interrupt(enum gpio_signal signal) @@ -71,7 +76,7 @@ BUILD_ASSERT(ARRAY_SIZE(pnpcfg_settings) == EC2I_SETTING_COUNT); /* Initialize board. */ static void board_init(void) { - gpio_enable_interrupt(GPIO_START_SW); + } DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); @@ -89,6 +94,20 @@ const struct adc_t adc_channels[] = { }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); +/* Keyboard scan setting */ +struct keyboard_scan_config keyscan_config = { + .output_settle_us = 35, + .debounce_down_us = 5 * MSEC, + .debounce_up_us = 40 * MSEC, + .scan_period_us = 3 * MSEC, + .min_post_scan_delay_us = 1000, + .poll_timeout_us = 100 * MSEC, + .actual_key_mask = { + 0x14, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, + 0xa4, 0xff, 0xfe, 0x55, 0xfa, 0xca /* full set */ + }, +}; + /*****************************************************************************/ /* Console commands */ diff --git a/board/it8380dev/board.h b/board/it8380dev/board.h index a1852d46a6..14523d4a1a 100644 --- a/board/it8380dev/board.h +++ b/board/it8380dev/board.h @@ -8,10 +8,18 @@ #ifndef __BOARD_H #define __BOARD_H -#ifndef __ASSEMBLER__ +/* Optional features */ +#define CONFIG_POWER_BUTTON +#define CONFIG_KEYBOARD_PROTOCOL_8042 +#define CONFIG_KEYBOARD_BOARD_CONFIG +#undef CONFIG_KEYBOARD_KSI_WUC_INT + +/* Debug */ +#undef CONFIG_KEYBOARD_DEBUG +#undef CONFIG_UART_TX_BUF_SIZE +#define CONFIG_UART_TX_BUF_SIZE 4096 -/* stubbed features */ -#undef CONFIG_LID_SWITCH +#ifndef __ASSEMBLER__ #include "gpio_signal.h" diff --git a/board/it8380dev/ec.tasklist b/board/it8380dev/ec.tasklist index d3ac489b42..6db02cfa8a 100644 --- a/board/it8380dev/ec.tasklist +++ b/board/it8380dev/ec.tasklist @@ -17,5 +17,8 @@ * 's' is the stack size in bytes; must be a multiple of 8 */ #define CONFIG_TASK_LIST \ - TASK_ALWAYS(HOOKS, hook_task, NULL, TASK_STACK_SIZE) \ - TASK_ALWAYS(CONSOLE, console_task, NULL, TASK_STACK_SIZE) + TASK_ALWAYS(HOOKS, hook_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \ + TASK_ALWAYS(HOSTCMD, host_command_task, NULL, TASK_STACK_SIZE) \ + TASK_NOTEST(KEYPROTO, keyboard_protocol_task, NULL, TASK_STACK_SIZE) \ + TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, TASK_STACK_SIZE) diff --git a/board/it8380dev/gpio.inc b/board/it8380dev/gpio.inc index 444ae4c15d..7fc5d09ef6 100644 --- a/board/it8380dev/gpio.inc +++ b/board/it8380dev/gpio.inc @@ -5,28 +5,31 @@ * found in the LICENSE file. */ -GPIO(H_LED0, A, 0, GPIO_ODR_HIGH, NULL) -GPIO(H_LED1, A, 1, GPIO_ODR_HIGH, NULL) -GPIO(H_LED2, A, 2, GPIO_ODR_HIGH, NULL) -GPIO(H_LED3, A, 3, GPIO_ODR_HIGH, NULL) -GPIO(H_LED4, A, 4, GPIO_ODR_HIGH, NULL) -GPIO(H_LED5, A, 5, GPIO_ODR_HIGH, NULL) -GPIO(H_LED6, A, 6, GPIO_ODR_HIGH, NULL) -GPIO(L_LED0, I, 0, GPIO_ODR_HIGH, NULL) -GPIO(L_LED1, I, 1, GPIO_ODR_HIGH, NULL) -GPIO(L_LED2, I, 2, GPIO_ODR_HIGH, NULL) -GPIO(L_LED3, I, 3, GPIO_ODR_HIGH, NULL) -GPIO(L_LED4, I, 4, GPIO_ODR_HIGH, NULL) -GPIO(L_LED5, I, 5, GPIO_ODR_HIGH, NULL) -GPIO(L_LED6, I, 6, GPIO_ODR_HIGH, NULL) -GPIO(BUSY_LED, J, 0, GPIO_OUT_LOW, NULL) -GPIO(GOOD_LED, J, 1, GPIO_OUT_HIGH, NULL) -GPIO(FAIL_LED, J, 2, GPIO_OUT_LOW, NULL) -GPIO(SW1, E, 0, GPIO_INPUT, NULL) -GPIO(SW2, E, 1, GPIO_INPUT | GPIO_PULL_DOWN, NULL) -GPIO(SW3, E, 2, GPIO_INPUT | GPIO_PULL_DOWN, NULL) -GPIO(SW4, E, 3, GPIO_INPUT | GPIO_PULL_DOWN, NULL) -GPIO(START_SW, E, 4, GPIO_INT_FALLING, test_interrupt) +GPIO(H_LED0, A, 0, GPIO_ODR_HIGH, NULL) +GPIO(H_LED1, A, 1, GPIO_ODR_HIGH, NULL) +GPIO(H_LED2, A, 2, GPIO_ODR_HIGH, NULL) +GPIO(H_LED3, A, 3, GPIO_ODR_HIGH, NULL) +GPIO(H_LED4, A, 4, GPIO_ODR_HIGH, NULL) +GPIO(H_LED5, A, 5, GPIO_ODR_HIGH, NULL) +GPIO(H_LED6, A, 6, GPIO_ODR_HIGH, NULL) +GPIO(L_LED0, I, 0, GPIO_ODR_HIGH, NULL) +GPIO(L_LED1, I, 1, GPIO_ODR_HIGH, NULL) +GPIO(L_LED2, I, 2, GPIO_ODR_HIGH, NULL) +GPIO(L_LED3, I, 3, GPIO_ODR_HIGH, NULL) +GPIO(L_LED4, I, 4, GPIO_ODR_HIGH, NULL) +GPIO(L_LED5, I, 5, GPIO_ODR_HIGH, NULL) +GPIO(L_LED6, I, 6, GPIO_ODR_HIGH, NULL) +GPIO(BUSY_LED, J, 0, GPIO_OUT_LOW, NULL) +GPIO(GOOD_LED, J, 1, GPIO_OUT_HIGH, NULL) +GPIO(FAIL_LED, J, 2, GPIO_OUT_LOW, NULL) +GPIO(POWER_BUTTON_L, E, 4, GPIO_INT_BOTH | GPIO_PULL_UP, power_button_interrupt) +GPIO(LID_OPEN, E, 2, GPIO_INT_BOTH | GPIO_PULL_DOWN, lid_interrupt) +GPIO(PCH_PLTRST_L, E, 3, GPIO_INPUT, NULL) +GPIO(PCH_SMI_L, D, 3, GPIO_OUT_HIGH, NULL) +GPIO(PCH_SCI_L, D, 4, GPIO_OUT_HIGH, NULL) +GPIO(GATE_A20_H, B, 5, GPIO_OUT_HIGH, NULL) +GPIO(PCH_RCIN_L, B, 6, GPIO_OUT_HIGH, NULL) +GPIO(LPC_CLKRUN_L, H, 0, GPIO_OUT_LOW, NULL) /* Unimplemented signals which we need to emulate for now */ UNIMPLEMENTED(ENTERING_RW) |