summaryrefslogtreecommitdiff
path: root/common/charger.c
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2014-03-27 13:37:21 -0700
committerBill Richardson <wfrichar@chromium.org>2014-03-28 15:23:04 +0000
commit915137770896e9ded6068c5969479849f02ca95c (patch)
treef94a1452aa24435d8496aa8e12b01098c752fbbb /common/charger.c
parent91a5fa01940764832c1b974d2022bee4e744f09c (diff)
downloadchrome-ec-915137770896e9ded6068c5969479849f02ca95c.tar.gz
Add charger_get_params() function to query charger state.
This returns all the parameters of the charger that must be monitored frequently. While some of the fields are charger-specific, all of the parameters are present in all supported chargers. Nothing uses this yet. BUG=chrome-os-partner:20881 BRANCH=ToT TEST=make buildall -j All targets build; all tests pass. Change-Id: Id3e00532469b193aeab3acf93e94afe3ffb8c6b6 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/191985 Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/charger.c')
-rw-r--r--common/charger.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/common/charger.c b/common/charger.c
index d7c92fe2a4..9d153c4159 100644
--- a/common/charger.c
+++ b/common/charger.c
@@ -96,6 +96,26 @@ int charger_closest_current(int current)
return current - (current % info->current_step);
}
+void charger_get_params(struct charger_params *chg)
+{
+ memset(chg, 0, sizeof(*chg));
+
+ if (charger_get_current(&chg->current))
+ chg->flags |= CHG_FLAG_BAD_CURRENT;
+
+ if (charger_get_voltage(&chg->voltage))
+ chg->flags |= CHG_FLAG_BAD_VOLTAGE;
+
+ if (charger_get_input_current(&chg->input_current))
+ chg->flags |= CHG_FLAG_BAD_INPUT_CURRENT;
+
+ if (charger_get_status(&chg->status))
+ chg->flags |= CHG_FLAG_BAD_STATUS;
+
+ if (charger_get_option(&chg->option))
+ chg->flags |= CHG_FLAG_BAD_OPTION;
+}
+
static void print_item_name(const char *name)
{
ccprintf(" %-8s", name);