summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorli feng <li1.feng@intel.com>2018-01-24 16:08:31 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-11-13 20:11:44 +0000
commit45ebe56dadecd0fbec9b01f48cf31e164864c493 (patch)
tree6d9ef06126e801dc3b02aa167adb0707b348c89f
parentd6d4229c2f4af66d96555fdc49259391fa109c05 (diff)
downloadchrome-ec-45ebe56dadecd0fbec9b01f48cf31e164864c493.tar.gz
ish gpio: added GPIO interrupt to IOAPIC
BUG=b:116451255 BRANCH=none TEST=none Change-Id: I3d6883554393c1733a902eff8ea3680ec9de33e1 Signed-off-by: li feng <li1.feng@intel.com> Reviewed-on: https://chromium-review.googlesource.com/884604 Commit-Ready: Li1 Feng <li1.feng@intel.com> Tested-by: Li1 Feng <li1.feng@intel.com> Reviewed-by: Caveh Jalali <caveh@google.com> Reviewed-by: Kyoung Il Kim <kyoung.il.kim@intel.com> (cherry picked from commit 12eacd182f5fba9cc744037c04c8e6317752b9fa) Reviewed-on: https://chromium-review.googlesource.com/c/1334037 Commit-Queue: Caveh Jalali <caveh@google.com> Tested-by: Caveh Jalali <caveh@google.com>
-rw-r--r--chip/ish/gpio.c8
-rw-r--r--chip/ish/registers.h4
-rw-r--r--core/minute-ia/interrupts.c1
3 files changed, 12 insertions, 1 deletions
diff --git a/chip/ish/gpio.c b/chip/ish/gpio.c
index 92304fc9b7..1458240115 100644
--- a/chip/ish/gpio.c
+++ b/chip/ish/gpio.c
@@ -31,4 +31,12 @@ static void gpio_init(void)
{
/* TBD */
}
+
+static void gpio_interrupt(void)
+{
+ /*TODO*/
+}
+
+DECLARE_IRQ(ISH_GPIO_IRQ, gpio_interrupt);
+
DECLARE_HOOK(HOOK_INIT, gpio_init, HOOK_PRIO_DEFAULT);
diff --git a/chip/ish/registers.h b/chip/ish/registers.h
index 74306e9159..4ad9176a0e 100644
--- a/chip/ish/registers.h
+++ b/chip/ish/registers.h
@@ -43,6 +43,8 @@ enum ish_i2c_port {
/* HW interrupt pins mapped to IOAPIC, from I/O sources */
#define ISH_I2C0_IRQ 0
#define ISH_I2C1_IRQ 1
+#define ISH_I2C2_IRQ 40
+#define ISH_GPIO_IRQ 7
#define ISH_HPET_TIMER0_IRQ 55
#define ISH_HPET_TIMER1_IRQ 8
#define ISH_HPET_TIMER2_IRQ 11
@@ -50,7 +52,6 @@ enum ish_i2c_port {
#define ISH_IPC_ISH2HOST_CLR_IRQ 24
#define ISH_UART0_IRQ 34
#define ISH_UART1_IRQ 35
-#define ISH_I2C2_IRQ 40
/* Interrupt vectors 0-31 are architecture reserved.
* Vectors 32-255 are user-defined.
@@ -68,6 +69,7 @@ enum ish_i2c_port {
#define ISH_I2C0_VEC IRQ_TO_VEC(ISH_I2C0_IRQ)
#define ISH_I2C1_VEC IRQ_TO_VEC(ISH_I2C1_IRQ)
#define ISH_I2C2_VEC IRQ_TO_VEC(ISH_I2C2_IRQ)
+#define ISH_GPIO_VEC IRQ_TO_VEC(ISH_GPIO_IRQ)
#define ISH_HPET_TIMER0_VEC IRQ_TO_VEC(ISH_HPET_TIMER0_IRQ)
#define ISH_HPET_TIMER1_VEC IRQ_TO_VEC(ISH_HPET_TIMER1_IRQ)
#define ISH_HPET_TIMER2_VEC IRQ_TO_VEC(ISH_HPET_TIMER2_IRQ)
diff --git a/core/minute-ia/interrupts.c b/core/minute-ia/interrupts.c
index 885e94449d..398c6cbb5c 100644
--- a/core/minute-ia/interrupts.c
+++ b/core/minute-ia/interrupts.c
@@ -70,6 +70,7 @@ static const irq_desc_t system_irqs[] = {
LEVEL_INTR(ISH_I2C0_IRQ, ISH_I2C0_VEC),
LEVEL_INTR(ISH_I2C1_IRQ, ISH_I2C1_VEC),
LEVEL_INTR(ISH_I2C2_IRQ, ISH_I2C2_VEC),
+ LEVEL_INTR(ISH_GPIO_IRQ, ISH_GPIO_VEC),
LEVEL_INTR(ISH_IPC_HOST2ISH_IRQ, ISH_IPC_VEC),
LEVEL_INTR(ISH_HPET_TIMER0_IRQ, ISH_HPET_TIMER0_VEC),
LEVEL_INTR(ISH_HPET_TIMER1_IRQ, ISH_HPET_TIMER1_VEC),