From 55c739b9a451871f742585ddda491105eef53662 Mon Sep 17 00:00:00 2001 From: Kevin K Wong Date: Wed, 1 Apr 2015 22:34:59 -0700 Subject: mec1322: Added CONFIG_KEYBOARD_KSO_BASE to align KBD KSO00 pin to board design MEC1322 KSO00~03 pin has an alternate JTAG function. For board that needs JTAG function, this #define allows hardware to use a different set of KSO pins. For example - Uses KSO04~16 instead of KSO00~KSO12. BUG=none TEST=Verified keyboard is functional with all keys detected BRANCH=none Change-Id: I1e3c1c2b6a4420cb6296b6bc921affa8c0ed5800 Signed-off-by: Kevin K Wong Reviewed-on: https://chromium-review.googlesource.com/264610 Reviewed-by: Shawn N --- board/cyan/board.h | 8 +++++--- board/strago/board.h | 6 ++++-- chip/mec1322/keyboard_raw.c | 4 ++-- include/config.h | 6 ++++++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/board/cyan/board.h b/board/cyan/board.h index 78dd2c55d0..9fde193e02 100644 --- a/board/cyan/board.h +++ b/board/cyan/board.h @@ -13,10 +13,12 @@ #define CONFIG_WATCHDOG_HELP #define CONFIG_CLOCK_CRYSTAL #define CONFIG_CHIPSET_BRASWELL -#define CONFIG_KEYBOARD_PROTOCOL_8042 -#define CONFIG_KEYBOARD_IRQ_GPIO GPIO_KBD_IRQ_L -#define CONFIG_KEYBOARD_COL2_INVERTED #define CONFIG_SCI_GPIO GPIO_PCH_SCI_L +#define CONFIG_KEYBOARD_COL2_INVERTED +#define CONFIG_KEYBOARD_IRQ_GPIO GPIO_KBD_IRQ_L +#undef CONFIG_KEYBOARD_KSO_BASE +#define CONFIG_KEYBOARD_KSO_BASE 4 /* KSO starts from KSO04 */ +#define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_POWER_BUTTON #define CONFIG_POWER_BUTTON_X86 #define CONFIG_LID_SWITCH diff --git a/board/strago/board.h b/board/strago/board.h index e33bcb6c6b..5143bdbcb7 100644 --- a/board/strago/board.h +++ b/board/strago/board.h @@ -14,9 +14,11 @@ #define CONFIG_WATCHDOG_HELP #define CONFIG_CLOCK_CRYSTAL #define CONFIG_CHIPSET_BRASWELL -#define CONFIG_KEYBOARD_PROTOCOL_8042 -#define CONFIG_KEYBOARD_IRQ_GPIO GPIO_KBD_IRQ_L #define CONFIG_KEYBOARD_COL2_INVERTED +#define CONFIG_KEYBOARD_IRQ_GPIO GPIO_KBD_IRQ_L +#undef CONFIG_KEYBOARD_KSO_BASE +#define CONFIG_KEYBOARD_KSO_BASE 4 /* KSO starts from KSO04 */ +#define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_POWER_BUTTON #define CONFIG_POWER_BUTTON_X86 #define CONFIG_LID_SWITCH diff --git a/chip/mec1322/keyboard_raw.c b/chip/mec1322/keyboard_raw.c index da1b626db8..8569472682 100644 --- a/chip/mec1322/keyboard_raw.c +++ b/chip/mec1322/keyboard_raw.c @@ -47,11 +47,11 @@ test_mockable void keyboard_raw_drive_column(int out) MEC1322_KS_KSO_SEL = 1 << 6; /* KSEN=1 */ gpio_set_level(GPIO_KBD_KSO2, 1); } else { - MEC1322_KS_KSO_SEL = out; + MEC1322_KS_KSO_SEL = out + CONFIG_KEYBOARD_KSO_BASE; gpio_set_level(GPIO_KBD_KSO2, 0); } #else - MEC1322_KS_KSO_SEL = out; + MEC1322_KS_KSO_SEL = out + CONFIG_KEYBOARD_KSO_BASE; #endif } } diff --git a/include/config.h b/include/config.h index bc8807d436..769160d1f0 100644 --- a/include/config.h +++ b/include/config.h @@ -806,6 +806,12 @@ */ #undef CONFIG_KEYBOARD_COL2_INVERTED +/* + * Config KSO to start from a different KSO pin. This is to allow some chips + * to use alternate functions on KSO pins. + */ +#define CONFIG_KEYBOARD_KSO_BASE 0 + /* Enable extra debugging output from keyboard modules */ #undef CONFIG_KEYBOARD_DEBUG -- cgit v1.2.1