ish-pm: support GPIO both edge interrupt #36
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change-Id: I471a20c61fa2d3085e96e901af6afc6be72a77be
ISH by its design doesn't support interrupt configuration both edge trigger; if configure both edge, in lower power mode, ISH will enter then exit LPM immediately. This causes insufficient LPM residency.
However in Chrome project, some GPIO pins have to support both edge interrupt. To keep LPM function intact and also meet the requirements of Chrome project, we provide this alternative solutions. In general, before entering LPM, reconfigure interrupt with single edge, which is the expected next triggering edge; after exit from LPM, restore original value.
Originally this was implemented in Chrome WHL ECOS ISH project; link is here: https://chromium.googlesource.com/chromiumos/platform/ec/+/refs/heads/main/chip/ish/power_mgt.c#299