summaryrefslogtreecommitdiff
path: root/chip/it83xx/intc.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/it83xx/intc.c')
-rw-r--r--chip/it83xx/intc.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/chip/it83xx/intc.c b/chip/it83xx/intc.c
new file mode 100644
index 0000000000..f4ddd86ac1
--- /dev/null
+++ b/chip/it83xx/intc.c
@@ -0,0 +1,36 @@
+/* Copyright 2015 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "common.h"
+#include "registers.h"
+#include "task.h"
+#include "kmsc_chip.h"
+#include "intc.h"
+
+void intc_cpu_int_group_5(void)
+{
+ /* Determine interrupt number. */
+ int intc_group_5 = IT83XX_INTC_IVCT5 - 16;
+
+ switch (intc_group_5) {
+#ifdef CONFIG_LPC
+ case IT83XX_IRQ_KBC_OUT:
+ lpc_kbc_obe_interrupt();
+ break;
+
+ case IT83XX_IRQ_KBC_IN:
+ lpc_kbc_ibf_interrupt();
+ break;
+#endif
+#if defined(HAS_TASK_KEYSCAN) && !defined(CONFIG_KEYBOARD_KSI_WUC_INT)
+ case IT83XX_IRQ_KB_MATRIX:
+ keyboard_raw_interrupt();
+ break;
+#endif
+ default:
+ break;
+ }
+}
+DECLARE_IRQ(CPU_INT_GROUP_5, intc_cpu_int_group_5, 2);