summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2017-09-22 12:54:28 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-10-03 14:26:09 -0700
commita27f1049b6d92d46de9a648ba64f451387a598d4 (patch)
treed7396d9183f565c2fbbecf2b9d4da6bd2880c5e3 /power
parent29dc221f98fa85efd3b351f0816c037562952753 (diff)
downloadchrome-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.c8
-rw-r--r--power/rk3399.c2
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;
}