summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
Diffstat (limited to 'board')
-rw-r--r--board/damu/board.c28
-rw-r--r--board/damu/board.h8
-rw-r--r--board/damu/ec.tasklist1
-rw-r--r--board/damu/gpio.inc3
-rw-r--r--board/jacuzzi/board.c8
-rw-r--r--board/jacuzzi/board.h6
-rw-r--r--board/kappa/board.c8
-rw-r--r--board/kappa/board.h6
8 files changed, 63 insertions, 5 deletions
diff --git a/board/damu/board.c b/board/damu/board.c
index 4639a23e50..0fd5487f95 100644
--- a/board/damu/board.c
+++ b/board/damu/board.c
@@ -27,6 +27,8 @@
#include "hooks.h"
#include "host_command.h"
#include "i2c.h"
+#include "it8801.h"
+#include "keyboard_scan.h"
#include "lid_switch.h"
#include "power.h"
#include "power_button.h"
@@ -79,6 +81,32 @@ const struct power_signal_info power_signal_list[] = {
};
BUILD_ASSERT(ARRAY_SIZE(power_signal_list) == POWER_SIGNAL_COUNT);
+/* Keyboard scan setting */
+struct keyboard_scan_config keyscan_config = {
+ /*
+ * TODO(b/133200075): Tune this once we have the final performance
+ * out of the driver and the i2c bus.
+ */
+ .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 */
+ },
+};
+
+struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
+ [0] = {
+ .i2c_host_port = I2C_PORT_IO_EXPANDER_IT8801,
+ .i2c_slave_addr = IT8801_I2C_ADDR,
+ .drv = &it8801_ioexpander_drv,
+ },
+};
+
/******************************************************************************/
/* SPI devices */
/* TODO: to be added once sensors land via CL:1714436 */
diff --git a/board/damu/board.h b/board/damu/board.h
index 8399a19b81..8e45ebc3e6 100644
--- a/board/damu/board.h
+++ b/board/damu/board.h
@@ -81,6 +81,14 @@
(EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
+#define CONFIG_IO_EXPANDER
+#define CONFIG_IO_EXPANDER_IT8801
+#define CONFIG_IO_EXPANDER_PORT_COUNT 1
+#define CONFIG_KEYBOARD_DEBUG
+#define CONFIG_KEYBOARD_NOT_RAW
+#define CONFIG_KEYBOARD_BOARD_CONFIG
+#define CONFIG_KEYBOARD_COL2_INVERTED
+
#define PD_OPERATING_POWER_MW 30000
#ifndef __ASSEMBLER__
diff --git a/board/damu/ec.tasklist b/board/damu/ec.tasklist
index f4fb8670ea..4b7574652e 100644
--- a/board/damu/ec.tasklist
+++ b/board/damu/ec.tasklist
@@ -15,6 +15,7 @@
TASK_NOTEST(PDCMD, pd_command_task, NULL, 1024) \
TASK_ALWAYS(HOSTCMD, host_command_task, NULL, 1024) \
TASK_ALWAYS(CONSOLE, console_task, NULL, LARGER_TASK_STACK_SIZE) \
+ TASK_NOTEST(KEYSCAN, keyboard_scan_task, NULL, LARGER_TASK_STACK_SIZE) \
TASK_ALWAYS(PD_C0, pd_task, NULL, 1280) \
TASK_ALWAYS(PD_INT_C0, pd_interrupt_handler_task, 0, 1024) \
TASK_ALWAYS_RO(EMMC, emmc_task, NULL, LARGER_TASK_STACK_SIZE)
diff --git a/board/damu/gpio.inc b/board/damu/gpio.inc
index 16daee88ee..90f6edd908 100644
--- a/board/damu/gpio.inc
+++ b/board/damu/gpio.inc
@@ -33,11 +33,12 @@ GPIO_INT(AC_PRESENT, PIN(A, 6), GPIO_INT_BOTH,
extpower_interrupt) /* ACOK_OD */
GPIO_INT(BC12_EC_INT_ODL, PIN(C, 9), GPIO_INT_FALLING,
bc12_interrupt)
+GPIO_INT(IT8801_SMB_INT, PIN(A, 8), GPIO_INT_FALLING | GPIO_PULL_UP,
+ io_expander_it8801_interrupt) /* KB_INT_ODL */
GPIO_INT(AP_EC_WATCHDOG_L, PIN(D, 2), GPIO_INT_FALLING,
chipset_watchdog_interrupt)
/* Unimplemented interrupts */
-GPIO(KB_INT_ODL, PIN(A, 8), GPIO_INPUT)
GPIO(ALS_RGB_INT_ODL, PIN(C, 10), GPIO_INPUT)
GPIO(TABLET_MODE_L, PIN(B, 11), GPIO_INPUT)
diff --git a/board/jacuzzi/board.c b/board/jacuzzi/board.c
index 8becdc3328..9029fa764b 100644
--- a/board/jacuzzi/board.c
+++ b/board/jacuzzi/board.c
@@ -107,6 +107,14 @@ struct keyboard_scan_config keyscan_config = {
},
};
+struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
+ [0] = {
+ .i2c_host_port = I2C_PORT_IO_EXPANDER_IT8801,
+ .i2c_slave_addr = IT8801_I2C_ADDR,
+ .drv = &it8801_ioexpander_drv,
+ },
+};
+
/******************************************************************************/
/* SPI devices */
const struct spi_device_t spi_devices[] = {
diff --git a/board/jacuzzi/board.h b/board/jacuzzi/board.h
index faab414edd..a3ca10e276 100644
--- a/board/jacuzzi/board.h
+++ b/board/jacuzzi/board.h
@@ -91,13 +91,15 @@
(EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
-#define CONFIG_EC_KEYBOARD
+#define CONFIG_IO_EXPANDER
+#define CONFIG_IO_EXPANDER_IT8801
+#define CONFIG_IO_EXPANDER_PORT_COUNT 1
#define CONFIG_KEYBOARD_DEBUG
#define CONFIG_KEYBOARD_NOT_RAW
-#define CONFIG_IO_EXPANDER_IT8801
#define CONFIG_KEYBOARD_BOARD_CONFIG
#define CONFIG_KEYBOARD_COL2_INVERTED
+
#define PD_OPERATING_POWER_MW 30000
#define CONFIG_LED_PWM
diff --git a/board/kappa/board.c b/board/kappa/board.c
index 97644e78d8..fcf1707528 100644
--- a/board/kappa/board.c
+++ b/board/kappa/board.c
@@ -103,6 +103,14 @@ struct keyboard_scan_config keyscan_config = {
},
};
+struct ioexpander_config_t ioex_config[CONFIG_IO_EXPANDER_PORT_COUNT] = {
+ [0] = {
+ .i2c_host_port = I2C_PORT_IO_EXPANDER_IT8801,
+ .i2c_slave_addr = IT8801_I2C_ADDR,
+ .drv = &it8801_ioexpander_drv,
+ },
+};
+
/******************************************************************************/
/* SPI devices */
/* TODO: to be added once sensors land via CL:1714436 */
diff --git a/board/kappa/board.h b/board/kappa/board.h
index 3e594dc7d9..8687c7a89b 100644
--- a/board/kappa/board.h
+++ b/board/kappa/board.h
@@ -82,13 +82,15 @@
(EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\
EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON))
-#define CONFIG_EC_KEYBOARD
+#define CONFIG_IO_EXPANDER
+#define CONFIG_IO_EXPANDER_IT8801
+#define CONFIG_IO_EXPANDER_PORT_COUNT 1
#define CONFIG_KEYBOARD_DEBUG
#define CONFIG_KEYBOARD_NOT_RAW
-#define CONFIG_IO_EXPANDER_IT8801
#define CONFIG_KEYBOARD_BOARD_CONFIG
#define CONFIG_KEYBOARD_COL2_INVERTED
+
#define PD_OPERATING_POWER_MW 30000
#undef CONFIG_LED_PWM_NEAR_FULL_COLOR