summaryrefslogtreecommitdiff
path: root/board/host/charger.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/host/charger.c')
-rw-r--r--board/host/charger.c57
1 files changed, 41 insertions, 16 deletions
diff --git a/board/host/charger.c b/board/host/charger.c
index 1dd972a82e..d71f1e8994 100644
--- a/board/host/charger.c
+++ b/board/host/charger.c
@@ -32,13 +32,13 @@ static uint32_t mock_current;
static uint32_t mock_voltage;
static uint32_t mock_input_current;
-const struct charger_info *charger_get_info(void)
+static const struct charger_info *mock_get_info(int chgnum)
{
return &mock_charger_info;
}
-int charger_get_status(int *status)
+static enum ec_error_list mock_get_status(int chgnum, int *status)
{
*status = CHARGER_LEVEL_2;
if (mock_mode & CHARGE_FLAG_INHIBIT_CHARGE)
@@ -48,7 +48,7 @@ int charger_get_status(int *status)
}
-int charger_set_mode(int mode)
+static enum ec_error_list mock_set_mode(int chgnum, int mode)
{
if (mode & CHARGE_FLAG_INHIBIT_CHARGE)
mock_mode |= OPTION_CHARGE_INHIBIT;
@@ -58,16 +58,16 @@ int charger_set_mode(int mode)
}
-int charger_get_current(int *current)
+static enum ec_error_list mock_get_current(int chgnum, int *current)
{
*current = mock_current;
return EC_SUCCESS;
}
-int charger_set_current(int current)
+static enum ec_error_list mock_set_current(int chgnum, int current)
{
- const struct charger_info *info = charger_get_info();
+ const struct charger_info *info = mock_get_info(chgnum);
if (current > 0 && current < info->current_min)
current = info->current_min;
@@ -80,14 +80,14 @@ int charger_set_current(int current)
return EC_SUCCESS;
}
-int charger_get_voltage(int *voltage)
+static enum ec_error_list mock_get_voltage(int chgnum, int *voltage)
{
*voltage = mock_voltage;
return EC_SUCCESS;
}
-int charger_set_voltage(int voltage)
+static enum ec_error_list mock_set_voltage(int chgnum, int voltage)
{
mock_voltage = voltage;
ccprintf("Charger set voltage: %d\n", voltage);
@@ -95,42 +95,42 @@ int charger_set_voltage(int voltage)
}
-int charger_get_option(int *option)
+static enum ec_error_list mock_get_option(int chgnum, int *option)
{
*option = mock_option;
return EC_SUCCESS;
}
-int charger_set_option(int option)
+static enum ec_error_list mock_set_option(int chgnum, int option)
{
mock_option = option;
return EC_SUCCESS;
}
-int charger_manufacturer_id(int *id)
+static enum ec_error_list mock_manufacturer_id(int chgnum, int *id)
{
return EC_SUCCESS;
}
-int charger_device_id(int *id)
+static enum ec_error_list mock_device_id(int chgnum, int *id)
{
return EC_SUCCESS;
}
-int charger_get_input_current(int *input_current)
+static enum ec_error_list mock_get_input_current(int chgnum, int *input_current)
{
*input_current = mock_input_current;
return EC_SUCCESS;
}
-int charger_set_input_current(int current)
+static enum ec_error_list mock_set_input_current(int chgnum, int current)
{
- const struct charger_info *info = charger_get_info();
+ const struct charger_info *info = mock_get_info(chgnum);
if (current < info->input_current_min)
current = info->input_current_min;
@@ -145,8 +145,33 @@ int charger_set_input_current(int current)
}
-int charger_post_init(void)
+static enum ec_error_list mock_post_init(int chgnum)
{
mock_current = mock_input_current = CONFIG_CHARGER_INPUT_CURRENT;
return EC_SUCCESS;
}
+
+const struct charger_drv mock_drv = {
+ .post_init = &mock_post_init,
+ .get_info = &mock_get_info,
+ .get_status = &mock_get_status,
+ .set_mode = &mock_set_mode,
+ .get_current = &mock_get_current,
+ .set_current = &mock_set_current,
+ .get_voltage = &mock_get_voltage,
+ .set_voltage = &mock_set_voltage,
+ .set_input_current = &mock_set_input_current,
+ .get_input_current = &mock_get_input_current,
+ .manufacturer_id = &mock_manufacturer_id,
+ .device_id = &mock_device_id,
+ .get_option = &mock_get_option,
+ .set_option = &mock_set_option,
+};
+
+const struct charger_config_t chg_chips[] = {
+ {
+ .drv = &mock_drv,
+ },
+};
+
+const unsigned int chg_cnt = ARRAY_SIZE(chg_chips);