diff options
author | Furquan Shaikh <furquan@chromium.org> | 2017-09-22 12:54:28 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-10-03 14:26:09 -0700 |
commit | a27f1049b6d92d46de9a648ba64f451387a598d4 (patch) | |
tree | d7396d9183f565c2fbbecf2b9d4da6bd2880c5e3 /power | |
parent | 29dc221f98fa85efd3b351f0816c037562952753 (diff) | |
download | chrome-ec-a27f1049b6d92d46de9a648ba64f451387a598d4.tar.gz |
power: Add flags parameter to power_signal_info
Replace structure member "level" in power_signal_info with "flags".
"level" has been used on all boards to indicate active-high or
active-low levels. Addition of "flags" allows easy extension of
power_signal_info structure to define various flags that might be
applicable to power signals (e.g. "level"). Going forward, additional
flag will be added in follow-up CLs.
Also, provide a helper function power_signal_is_asserted that checks
the actual level of a signal and compares it to the flags level to
identify if a power signal is asserted.
BUG=b:65421825
BRANCH=None
TEST=make -j buildall
Change-Id: Iacaabd1185b347c17b5159f05520731505b824b8
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/679979
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Diffstat (limited to 'power')
-rw-r--r-- | power/common.c | 8 | ||||
-rw-r--r-- | power/rk3399.c | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/power/common.c b/power/common.c index 4669d23d8a..d17a0c9336 100644 --- a/power/common.c +++ b/power/common.c @@ -92,6 +92,12 @@ static int power_signal_enable_interrupt(enum gpio_signal signal) return gpio_enable_interrupt(signal); } +int power_signal_is_asserted(const struct power_signal_info *s) +{ + return power_signal_get_level(s->gpio) == + !!(s->flags & POWER_SIGNAL_ACTIVE_STATE); +} + /** * Update input signals mask */ @@ -102,7 +108,7 @@ static void power_update_signals(void) int i; for (i = 0; i < POWER_SIGNAL_COUNT; i++, s++) { - if (power_signal_get_level(s->gpio) == s->level) + if (power_signal_is_asserted(s)) inew |= 1 << i; } diff --git a/power/rk3399.c b/power/rk3399.c index c4db25e48c..b2c898a5cd 100644 --- a/power/rk3399.c +++ b/power/rk3399.c @@ -593,7 +593,7 @@ static void power_signal_changed(void) if (s->gpio < GPIO_IH_COUNT) continue; - if (gpio_get_level(s->gpio) == s->level) + if (power_signal_is_asserted(s)) inew |= 1 << i; } |