summaryrefslogtreecommitdiff
path: root/include/chipset.h
diff options
context:
space:
mode:
authorWai-Hong Tam <waihong@google.com>2020-01-30 10:37:12 -0800
committerCommit Bot <commit-bot@chromium.org>2020-02-01 01:11:02 +0000
commitab88ce1416cfcbf0cd6a81cb16e0890eaef1eff1 (patch)
tree7634a5cc6283290a31abf9ab6958737cd79e12db /include/chipset.h
parentc825ad974c4086c282f1f4383a47619f6c0b207d (diff)
downloadchrome-ec-ab88ce1416cfcbf0cd6a81cb16e0890eaef1eff1.tar.gz
Trogdor: Separate the interrupt handlers of WARM_RESET_L and POWER_GOOD
The original one interrupt handler for two signals will cause a false-postive for the WARM_RESET_L release case, during a transition state that POWER_GOOD goes low but WARM_RESET_L is still high. Use two interrupt handlers for WARM_RESET_L and its pull-up rail POWER_GOOD. It is clear that what signal triggers the interrupt. BRANCH=None BUG=b:148478178 TEST=Called "dut-control warm_reset:on sleep:0.2 warm_reset:off" and saw the message "Long warm reset ended, cold resetting to restore sanity" once. Change-Id: I5a14f91c0dbfacd6a70d01d45f3e8de2b6c6a1cc Signed-off-by: Wai-Hong Tam <waihong@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2031647 Reviewed-by: Alexandru M Stan <amstan@chromium.org> Tested-by: Alexandru M Stan <amstan@chromium.org>
Diffstat (limited to 'include/chipset.h')
-rw-r--r--include/chipset.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/chipset.h b/include/chipset.h
index 7b684598cb..d69f86a340 100644
--- a/include/chipset.h
+++ b/include/chipset.h
@@ -202,6 +202,7 @@ static inline void chipset_handle_espi_reset_assert(void) { }
static inline void chipset_handle_reboot(void) { }
static inline void chipset_reset_request_interrupt(enum gpio_signal signal) { }
static inline void chipset_warm_reset_interrupt(enum gpio_signal signal) { }
+static inline void chipset_power_good_interrupt(enum gpio_signal signal) { }
static inline void chipset_watchdog_interrupt(enum gpio_signal signal) { }
#endif /* !HAS_TASK_CHIPSET */
@@ -228,11 +229,18 @@ void chipset_reset_request_interrupt(enum gpio_signal signal);
/**
* GPIO interrupt handler of warm reset signal from servo or H1.
*
- * It is used in SDM845 chipset power sequence.
+ * It is used in Qualcomm chipset power sequence.
*/
void chipset_warm_reset_interrupt(enum gpio_signal signal);
/**
+ * GPIO interrupt handler of the power good signal (pull rail of warm reset).
+ *
+ * It is used in Qualcomm chipset power sequence.
+ */
+void chipset_power_good_interrupt(enum gpio_signal signal);
+
+/**
* GPIO interrupt handler of watchdog from AP.
*
* It is used in MT8183 chipset, where it must be setup to trigger on falling