summaryrefslogtreecommitdiff
path: root/board/it8380dev
diff options
context:
space:
mode:
authorDino Li <dino.li@ite.com.tw>2015-03-20 17:14:45 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-03-22 03:13:58 +0000
commit2c3cf4d1a9d6ed732985ea495e8ebfe1d09a916b (patch)
tree8903dec2bb649fdccfe7af9edcf6cb4c6275f3a6 /board/it8380dev
parentc12181d9af8fbe0b61ac522e813bec463571dda5 (diff)
downloadchrome-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/it8380dev')
-rw-r--r--board/it8380dev/board.c21
-rw-r--r--board/it8380dev/board.h14
-rw-r--r--board/it8380dev/ec.tasklist7
-rw-r--r--board/it8380dev/gpio.inc47
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)