summaryrefslogtreecommitdiff
path: root/chip/mec1322
diff options
context:
space:
mode:
Diffstat (limited to 'chip/mec1322')
-rw-r--r--chip/mec1322/gpio.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/chip/mec1322/gpio.c b/chip/mec1322/gpio.c
index 0d59dc5849..4df46dd6d8 100644
--- a/chip/mec1322/gpio.c
+++ b/chip/mec1322/gpio.c
@@ -173,6 +173,24 @@ int gpio_disable_interrupt(enum gpio_signal signal)
return EC_SUCCESS;
}
+int gpio_clear_pending_interrupt(enum gpio_signal signal)
+{
+ int i, port, girq_id, bit_id;
+
+ if (gpio_list[signal].mask == 0)
+ return EC_SUCCESS;
+
+ i = GPIO_MASK_TO_NUM(gpio_list[signal].mask);
+ port = gpio_list[signal].port;
+ girq_id = int_map[port].girq_id;
+ bit_id = (port - int_map[port].port_offset) * 8 + i;
+
+ /* Clear interrupt source sticky status bit even if not enabled */
+ MEC1322_INT_SOURCE(girq_id) |= 1 << bit_id;
+
+ return EC_SUCCESS;
+}
+
void gpio_pre_init(void)
{
int i;