diff options
Diffstat (limited to 'board/primus/battery.c')
-rw-r--r-- | board/primus/battery.c | 97 |
1 files changed, 92 insertions, 5 deletions
diff --git a/board/primus/battery.c b/board/primus/battery.c index e9e822f2e8..1b0d74bed3 100644 --- a/board/primus/battery.c +++ b/board/primus/battery.c @@ -1,4 +1,4 @@ -/* Copyright 2021 The Chromium OS Authors. All rights reserved. +/* Copyright 2021 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -32,7 +32,7 @@ * address, mask, and disconnect value need to be provided. */ const struct board_batt_params board_battery_info[] = { - [BATTERY_SUNWODA] = { + [BATTERY_SUNWODA_5B11F21946] = { .fuel_gauge = { .manuf_name = "Sunwoda", .device_name = "LNV-5B11F21946", @@ -61,7 +61,36 @@ const struct board_batt_params board_battery_info[] = { }, }, - [BATTERY_SMP] = { + [BATTERY_SUNWODA_5B11H56342] = { + .fuel_gauge = { + .manuf_name = "Sunwoda", + .device_name = "LNV-5B11H56342", + .ship_mode = { + .reg_addr = 0x00, + .reg_data = { 0x0010, 0x0010 }, + }, + .fet = { + .mfgacc_support = 1, + .reg_addr = 0x0000, + .reg_mask = 0x6000, + .disconnect_val = 0x6000, + } + }, + .batt_info = { + .voltage_max = 13200, /* mV */ + .voltage_normal = 11520, /* mV */ + .voltage_min = 9000, /* mV */ + .precharge_current = 251, /* mA */ + .start_charging_min_c = 0, + .start_charging_max_c = 50, + .charging_min_c = 0, + .charging_max_c = 60, + .discharging_min_c = -20, + .discharging_max_c = 60, + }, + }, + + [BATTERY_SMP_5B11F21953] = { .fuel_gauge = { .manuf_name = "SMP", .device_name = "LNV-5B11F21953", @@ -90,7 +119,36 @@ const struct board_batt_params board_battery_info[] = { }, }, - [BATTERY_CELXPERT] = { + [BATTERY_SMP_5B11H56344] = { + .fuel_gauge = { + .manuf_name = "SMP", + .device_name = "LNV-5B11H56344", + .ship_mode = { + .reg_addr = 0x00, + .reg_data = { 0x0010, 0x0010 }, + }, + .fet = { + .mfgacc_support = 1, + .reg_addr = 0x0000, + .reg_mask = 0x6000, + .disconnect_val = 0x6000, + } + }, + .batt_info = { + .voltage_max = 13200, /* mV */ + .voltage_normal = 11520, /* mV */ + .voltage_min = 9000, /* mV */ + .precharge_current = 250, /* mA */ + .start_charging_min_c = 0, + .start_charging_max_c = 60, + .charging_min_c = 0, + .charging_max_c = 60, + .discharging_min_c = -20, + .discharging_max_c = 60, + }, + }, + + [BATTERY_CELXPERT_5B11F21941] = { .fuel_gauge = { .manuf_name = "Celxpert", .device_name = "LNV-5B11F21941", @@ -118,7 +176,36 @@ const struct board_batt_params board_battery_info[] = { .discharging_max_c = 70, }, }, + + [BATTERY_CELXPERT_5B11H56343] = { + .fuel_gauge = { + .manuf_name = "Celxpert", + .device_name = "LNV-5B11H56343", + .ship_mode = { + .reg_addr = 0x00, + .reg_data = { 0x0010, 0x0010 }, + }, + .fet = { + .mfgacc_support = 1, + .reg_addr = 0x0000, + .reg_mask = 0x6000, + .disconnect_val = 0x6000, + } + }, + .batt_info = { + .voltage_max = 13200, /* mV */ + .voltage_normal = 11520, /* mV */ + .voltage_min = 9000, /* mV */ + .precharge_current = 487, /* mA */ + .start_charging_min_c = 0, + .start_charging_max_c = 50, + .charging_min_c = 0, + .charging_max_c = 60, + .discharging_min_c = -20, + .discharging_max_c = 70, + }, + }, }; BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT); -const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SUNWODA; +const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_SUNWODA_5B11F21946; |