diff options
-rw-r--r-- | board/burnet/board.c | 4 | ||||
-rw-r--r-- | board/burnet/board.h | 5 | ||||
-rw-r--r-- | board/cerise/board.c | 4 | ||||
-rw-r--r-- | board/cerise/board.h | 5 | ||||
-rw-r--r-- | board/damu/board.c | 4 | ||||
-rw-r--r-- | board/damu/board.h | 5 | ||||
-rw-r--r-- | board/fennel/board.c | 4 | ||||
-rw-r--r-- | board/fennel/board.h | 5 | ||||
-rw-r--r-- | board/jacuzzi/board.c | 4 | ||||
-rw-r--r-- | board/jacuzzi/board.h | 5 | ||||
-rw-r--r-- | board/kappa/board.c | 4 | ||||
-rw-r--r-- | board/kappa/board.h | 5 | ||||
-rw-r--r-- | board/makomo/board.c | 4 | ||||
-rw-r--r-- | board/makomo/board.h | 5 | ||||
-rw-r--r-- | board/munna/board.c | 4 | ||||
-rw-r--r-- | board/munna/board.h | 5 | ||||
-rw-r--r-- | board/stern/board.c | 4 | ||||
-rw-r--r-- | board/stern/board.h | 5 | ||||
-rw-r--r-- | board/willow/board.c | 4 | ||||
-rw-r--r-- | board/willow/board.h | 5 | ||||
-rw-r--r-- | driver/ioexpander/it8801.c | 8 | ||||
-rw-r--r-- | driver/ioexpander/it8801.h | 3 | ||||
-rw-r--r-- | include/config.h | 10 |
23 files changed, 75 insertions, 36 deletions
diff --git a/board/burnet/board.c b/board/burnet/board.c index c5c66a15fc..d932624b0a 100644 --- a/board/burnet/board.c +++ b/board/burnet/board.c @@ -108,8 +108,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/burnet/board.h b/board/burnet/board.h index 65791750b5..009da83ac5 100644 --- a/board/burnet/board.h +++ b/board/burnet/board.h @@ -77,9 +77,12 @@ #define I2C_PORT_BATTERY 2 #define I2C_PORT_CHARGER 1 #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/cerise/board.c b/board/cerise/board.c index dfdb9230f9..78ab8f6de8 100644 --- a/board/cerise/board.c +++ b/board/cerise/board.c @@ -106,8 +106,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/cerise/board.h b/board/cerise/board.h index d230c71513..5cf8c06f01 100644 --- a/board/cerise/board.h +++ b/board/cerise/board.h @@ -79,9 +79,12 @@ #define I2C_PORT_BATTERY 2 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/damu/board.c b/board/damu/board.c index fcb74cd482..ca3979949a 100644 --- a/board/damu/board.c +++ b/board/damu/board.c @@ -106,8 +106,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/damu/board.h b/board/damu/board.h index b271f9283d..6df8bb2a7a 100644 --- a/board/damu/board.h +++ b/board/damu/board.h @@ -78,9 +78,12 @@ #define I2C_PORT_BATTERY 2 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/fennel/board.c b/board/fennel/board.c index 11ca03e0a5..0706813592 100644 --- a/board/fennel/board.c +++ b/board/fennel/board.c @@ -107,8 +107,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/fennel/board.h b/board/fennel/board.h index 448c7debf0..697480770c 100644 --- a/board/fennel/board.h +++ b/board/fennel/board.h @@ -83,10 +83,13 @@ #define I2C_PORT_USB_MUX 0 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY #define I2C_PORT_BATTERY 2 +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/jacuzzi/board.c b/board/jacuzzi/board.c index 9f655474d2..ec6515544d 100644 --- a/board/jacuzzi/board.c +++ b/board/jacuzzi/board.c @@ -110,8 +110,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/jacuzzi/board.h b/board/jacuzzi/board.h index 648edcc4a6..ef8a02a3dc 100644 --- a/board/jacuzzi/board.h +++ b/board/jacuzzi/board.h @@ -90,7 +90,7 @@ #define I2C_PORT_USB_MUX 0 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY #ifdef BOARD_JACUZZI #define I2C_PORT_BATTERY 1 @@ -98,6 +98,9 @@ #define I2C_PORT_BATTERY 2 #endif +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/kappa/board.c b/board/kappa/board.c index b8c5fee622..a0d7cf6a4e 100644 --- a/board/kappa/board.c +++ b/board/kappa/board.c @@ -104,8 +104,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/kappa/board.h b/board/kappa/board.h index 92851f45bf..287f22416e 100644 --- a/board/kappa/board.h +++ b/board/kappa/board.h @@ -53,9 +53,12 @@ #define I2C_PORT_USB_MUX 0 #define I2C_PORT_BATTERY 2 #define I2C_PORT_CHARGER 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + #define CONFIG_KEYBOARD_PROTOCOL_MKBP #define CONFIG_MKBP_EVENT #define CONFIG_MKBP_USE_GPIO diff --git a/board/makomo/board.c b/board/makomo/board.c index 70056b3f2c..1bb6b134a7 100644 --- a/board/makomo/board.c +++ b/board/makomo/board.c @@ -105,8 +105,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/makomo/board.h b/board/makomo/board.h index 7fcbf74bb8..844fd95292 100644 --- a/board/makomo/board.h +++ b/board/makomo/board.h @@ -82,10 +82,13 @@ #define I2C_PORT_USB_MUX 0 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY #define I2C_PORT_BATTERY 2 +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/munna/board.c b/board/munna/board.c index cb5d818b22..f31c7a7e39 100644 --- a/board/munna/board.c +++ b/board/munna/board.c @@ -106,8 +106,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/munna/board.h b/board/munna/board.h index f530c45781..baf68470e4 100644 --- a/board/munna/board.h +++ b/board/munna/board.h @@ -99,7 +99,7 @@ #define I2C_PORT_USB_MUX 0 #define I2C_PORT_CHARGER 2 #define I2C_PORT_SENSORS 2 -#define I2C_PORT_IO_EXPANDER_IT8801 2 +#define IT8801_KEYBOARD_PWM_I2C_PORT 2 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY #define I2C_PORT_BATTERY 3 #define I2C_PORT_TCPC0 0 @@ -109,6 +109,9 @@ #define I2C_CONTROLLER_COUNT 3 #define I2C_PORT_COUNT 3 +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/stern/board.c b/board/stern/board.c index ce82554f16..609dfdf7e5 100644 --- a/board/stern/board.c +++ b/board/stern/board.c @@ -106,8 +106,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/stern/board.h b/board/stern/board.h index cd3fa307c3..5bf23a6733 100644 --- a/board/stern/board.h +++ b/board/stern/board.h @@ -78,9 +78,12 @@ #define I2C_PORT_BATTERY 2 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/board/willow/board.c b/board/willow/board.c index ea2171431b..ba467fddc2 100644 --- a/board/willow/board.c +++ b/board/willow/board.c @@ -103,8 +103,8 @@ __override 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_addr_flags = IT8801_I2C_ADDR, + .i2c_host_port = IT8801_KEYBOARD_PWM_I2C_PORT, + .i2c_addr_flags = IT8801_I2C_ADDR1, .drv = &it8801_ioexpander_drv, }, }; diff --git a/board/willow/board.h b/board/willow/board.h index 5ef970e252..a6907b9a9e 100644 --- a/board/willow/board.h +++ b/board/willow/board.h @@ -73,10 +73,13 @@ #define I2C_PORT_USB_MUX 0 #define I2C_PORT_CHARGER board_get_charger_i2c() #define I2C_PORT_SENSORS 1 -#define I2C_PORT_IO_EXPANDER_IT8801 1 +#define IT8801_KEYBOARD_PWM_I2C_PORT 1 #define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY #define I2C_PORT_BATTERY 2 +/* IT8801 I2C address */ +#define IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS IT8801_I2C_ADDR1 + /* Enable Accel over SPI */ #define CONFIG_SPI_ACCEL_PORT 0 /* The first SPI master port (SPI2) */ diff --git a/driver/ioexpander/it8801.c b/driver/ioexpander/it8801.c index ebe1809f18..165e88f1df 100644 --- a/driver/ioexpander/it8801.c +++ b/driver/ioexpander/it8801.c @@ -22,14 +22,14 @@ static int it8801_ioex_set_level(int ioex, int port, int mask, int value); static int it8801_read(int reg, int *data) { - return i2c_read8(I2C_PORT_IO_EXPANDER_IT8801, IT8801_I2C_ADDR, - reg, data); + return i2c_read8(IT8801_KEYBOARD_PWM_I2C_PORT, + IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS, reg, data); } static int it8801_write(int reg, int data) { - return i2c_write8(I2C_PORT_IO_EXPANDER_IT8801, IT8801_I2C_ADDR, - reg, data); + return i2c_write8(IT8801_KEYBOARD_PWM_I2C_PORT, + IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS, reg, data); } struct it8801_vendor_id_t { diff --git a/driver/ioexpander/it8801.h b/driver/ioexpander/it8801.h index 2b16c40bd6..ec38bba6af 100644 --- a/driver/ioexpander/it8801.h +++ b/driver/ioexpander/it8801.h @@ -10,7 +10,8 @@ #define __CROS_EC_IO_EXPANDER_IT8801_H /* I2C address flags (7-bit without R/W) */ -#define IT8801_I2C_ADDR 0x38 +#define IT8801_I2C_ADDR1 0x38 +#define IT8801_I2C_ADDR2 0x39 /* Keyboard Matrix Scan control (KBS) */ #define IT8801_REG_KSOMCR 0x40 diff --git a/include/config.h b/include/config.h index fdc1638d06..63dc4beb62 100644 --- a/include/config.h +++ b/include/config.h @@ -2570,7 +2570,15 @@ /* Support CCGXXF I/O expander built inside PD chip */ #undef CONFIG_IO_EXPANDER_CCGXXF -/* Support IT8801 I/O expander. */ +/* + * Support IT8801 I/O expander. + * + * I2C address IT8801_KEYBOARD_PWM_I2C_ADDR_FLAGS and I2C port + * IT8801_KEYBOARD_PWM_I2C_PORT must be defined as well. + * Note: these values are only used when accessing the keyboard and PWM + * function of the IT8801 chip. I/O expander functions are accessed using + * the ioex_config[] array. + */ #undef CONFIG_IO_EXPANDER_IT8801 /* Support Nuvoton NCT38xx I/O expander. */ |