summaryrefslogtreecommitdiff
path: root/chip/it83xx/keyboard_raw.c
diff options
context:
space:
mode:
authorDino Li <dino.li@ite.com.tw>2016-03-21 16:03:14 +0800
committerchrome-bot <chrome-bot@chromium.org>2016-03-22 21:39:26 -0700
commitba6e37787a7b2dc143d9d3f400f0d4ecc78eb829 (patch)
treef4aa7aa455d3c655cb604eb016779bc63ee97a79 /chip/it83xx/keyboard_raw.c
parent47e2912f4bd67b69dc2961c146a9e6674092cda8 (diff)
downloadchrome-ec-ba6e37787a7b2dc143d9d3f400f0d4ecc78eb829.tar.gz
it83xx: keyboard: remove "CONFIG_IT83XX_KEYBOARD_KSI_WUC_INT" and fix ISR
1. Always use wake-up control interrupt for keyboard KSI. This can also wake-up EC from deep doze / sleep mode. 2. In keyboard ISR, we just clear interrupt status to prevent keyboard interrupt can't be re-enabled. (for example, a KSI interrupt wakes up keyboard scan task, but keyboard_raw_read_rows() got 0.) Signed-off-by: Dino Li <dino.li@ite.com.tw> BRANCH=none BUG=none TEST=keyboard function is normally. Change-Id: If8c292189c6133b179a63dedcb7a18abbc091312 Reviewed-on: https://chromium-review.googlesource.com/333865 Commit-Ready: Dino Li <dino.li@ite.com.tw> Tested-by: Dino Li <dino.li@ite.com.tw> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'chip/it83xx/keyboard_raw.c')
-rw-r--r--chip/it83xx/keyboard_raw.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/chip/it83xx/keyboard_raw.c b/chip/it83xx/keyboard_raw.c
index 343574e51a..42f877ffcc 100644
--- a/chip/it83xx/keyboard_raw.c
+++ b/chip/it83xx/keyboard_raw.c
@@ -35,7 +35,6 @@ void keyboard_raw_init(void)
/* KSO[15:8] pins low. */
IT83XX_KBS_KSOH1 = 0x00;
-#ifdef CONFIG_IT83XX_KEYBOARD_KSI_WUC_INT
/* KSI[0-7] falling-edge triggered is selected */
IT83XX_WUC_WUEMR3 = 0xFF;
@@ -46,10 +45,6 @@ void keyboard_raw_init(void)
/* Enable WUC for KSI[0-7] */
IT83XX_WUC_WUENR3 = 0xFF;
-#else
- task_clear_pending_irq(IT83XX_IRQ_KB_MATRIX);
-#endif
-
}
/*
@@ -57,14 +52,9 @@ void keyboard_raw_init(void)
*/
void keyboard_raw_task_start(void)
{
-#ifdef CONFIG_IT83XX_KEYBOARD_KSI_WUC_INT
IT83XX_WUC_WUESR3 = 0xFF;
task_clear_pending_irq(IT83XX_IRQ_WKINTC);
task_enable_irq(IT83XX_IRQ_WKINTC);
-#else
- task_clear_pending_irq(IT83XX_IRQ_KB_MATRIX);
- task_enable_irq(IT83XX_IRQ_KB_MATRIX);
-#endif
}
/*
@@ -104,20 +94,11 @@ test_mockable int keyboard_raw_read_rows(void)
void keyboard_raw_enable_interrupt(int enable)
{
if (enable) {
-#ifdef CONFIG_IT83XX_KEYBOARD_KSI_WUC_INT
IT83XX_WUC_WUESR3 = 0xFF;
task_clear_pending_irq(IT83XX_IRQ_WKINTC);
task_enable_irq(IT83XX_IRQ_WKINTC);
-#else
- task_clear_pending_irq(IT83XX_IRQ_KB_MATRIX);
- task_enable_irq(IT83XX_IRQ_KB_MATRIX);
-#endif
} else {
-#ifdef CONFIG_IT83XX_KEYBOARD_KSI_WUC_INT
task_disable_irq(IT83XX_IRQ_WKINTC);
-#else
- task_disable_irq(IT83XX_IRQ_KB_MATRIX);
-#endif
}
}
@@ -126,11 +107,8 @@ void keyboard_raw_enable_interrupt(int enable)
*/
void keyboard_raw_interrupt(void)
{
-#ifdef CONFIG_IT83XX_KEYBOARD_KSI_WUC_INT
- task_disable_irq(IT83XX_IRQ_WKINTC);
-#else
- task_disable_irq(IT83XX_IRQ_KB_MATRIX);
-#endif
+ IT83XX_WUC_WUESR3 = 0xFF;
+ task_clear_pending_irq(IT83XX_IRQ_WKINTC);
/* Wake the scan task */
task_wake(TASK_ID_KEYSCAN);