From 19c1e9905db46b0a669d0af8848be3f28dcedf41 Mon Sep 17 00:00:00 2001 From: Dino Li Date: Tue, 20 Oct 2015 16:55:43 +0800 Subject: it8380dev: fix clock module 1. Implement deep doze mode for CONFIG_LOW_POWER_IDLE. Signed-off-by: Dino Li BRANCH=none BUG=none TEST=test the following items in deep doze mode. 1. WUI interrupts wake-up OK. (For example, power button, lid, uart rx, keyboard ksi, and so on) 2. LPC access interrupt wake-up OK. 3. Enabled Hook debug, no warning message received (48hrs). Change-Id: I8702a112632cb6c1c0fa75d682badf272130a7d4 Reviewed-on: https://chromium-review.googlesource.com/307060 Commit-Ready: Dino Li Tested-by: Dino Li Reviewed-by: Randall Spangler --- chip/it83xx/gpio.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'chip/it83xx/gpio.c') diff --git a/chip/it83xx/gpio.c b/chip/it83xx/gpio.c index b3d4d11945..063ed222fb 100644 --- a/chip/it83xx/gpio.c +++ b/chip/it83xx/gpio.c @@ -378,6 +378,18 @@ int gpio_disable_interrupt(enum gpio_signal signal) return EC_SUCCESS; } +int gpio_clear_pending_interrupt(enum gpio_signal signal) +{ + int irq = gpio_to_irq(gpio_list[signal].port, gpio_list[signal].mask); + + if (irq == -1) + return EC_ERROR_UNKNOWN; + + *(wuesr(gpio_irqs[irq].wuc_group)) = gpio_irqs[irq].wuc_mask; + task_clear_pending_irq(irq); + return EC_SUCCESS; +} + void gpio_pre_init(void) { const struct gpio_info *g = gpio_list; -- cgit v1.2.1