summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin K Wong <kevin.k.wong@intel.com>2015-04-01 22:34:59 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-04-09 04:45:23 +0000
commit55c739b9a451871f742585ddda491105eef53662 (patch)
treead073d850109a9b9b785e8680225edafaf86b077
parente369986c6ed153f5cdae30a865765985934d32f4 (diff)
downloadchrome-ec-55c739b9a451871f742585ddda491105eef53662.tar.gz
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 <kevin.k.wong@intel.com> Reviewed-on: https://chromium-review.googlesource.com/264610 Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r--board/cyan/board.h8
-rw-r--r--board/strago/board.h6
-rw-r--r--chip/mec1322/keyboard_raw.c4
-rw-r--r--include/config.h6
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