diff options
author | Ting Shen <phoenixshen@google.com> | 2019-03-12 14:58:07 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-13 10:38:53 -0700 |
commit | 5d868a77265927367c59b49c5a8b677bb8fefbd5 (patch) | |
tree | f710bad28fb7870d71565eb90ce290088e5601bc /board | |
parent | ae9ac3459d2e76e1b424d6b0d5385bda2c4663ae (diff) | |
download | chrome-ec-5d868a77265927367c59b49c5a8b677bb8fefbd5.tar.gz |
Krane: battery bring up
Add support for second gauge, and battery info from b:124831674.
BUG=b:124831674,b:128374872
TEST=make BOARD=kukui/krane, deploy to a reworked kukui p1 board
BRANCH=none
Change-Id: I9967a0137845f763fb0091f01acd9187bc7c2e40
Signed-off-by: Ting Shen <phoenixshen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1517059
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Yilun Lin <yllin@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/kukui/battery.c | 47 | ||||
-rw-r--r-- | board/kukui/board.h | 4 |
2 files changed, 44 insertions, 7 deletions
diff --git a/board/kukui/battery.c b/board/kukui/battery.c index 1e7bec10a7..c24109f966 100644 --- a/board/kukui/battery.c +++ b/board/kukui/battery.c @@ -9,7 +9,6 @@ #include "battery_smart.h" #include "charge_state.h" #include "console.h" -#include "driver/battery/max17055.h" #include "driver/charger/rt946x.h" #include "driver/tcpm/mt6370.h" #include "ec_commands.h" @@ -19,10 +18,19 @@ #include "usb_pd.h" #include "util.h" +#if defined(CONFIG_BATTERY_MAX17055) +#include "driver/battery/max17055.h" +#elif defined(CONFIG_BATTERY_MM8013) +#include "driver/battery/mm8013.h" +#endif + #define TEMP_OUT_OF_RANGE TEMP_ZONE_COUNT -/* We have only one battery now. */ +#if defined(BOARD_KRANE) +#define BATT_ID 1 +#else #define BATT_ID 0 +#endif #define BAT_LEVEL_PD_LIMIT 85 @@ -31,6 +39,7 @@ enum battery_type { BATTERY_SIMPLO = 0, + BATTERY_MITSUMI, BATTERY_COUNT }; @@ -47,8 +56,26 @@ static const struct battery_info info[] = { .discharging_min_c = -20, .discharging_max_c = 60, }, + [BATTERY_MITSUMI] = { + .voltage_max = 4400, + .voltage_normal = 3850, + .voltage_min = 3400, + .precharge_current = 256, + .start_charging_min_c = 0, + .start_charging_max_c = 45, + .charging_min_c = 0, + .charging_max_c = 50, + .discharging_min_c = -20, + .discharging_max_c = 60, + }, }; +#ifdef CONFIG_BATTERY_MAX17055 + +#if BATT_ID == 1 +#error "Battery profile for Mitsumi battery not available" +#endif + static const struct max17055_batt_profile batt_profile[] = { [BATTERY_SIMPLO] = { .is_ez_config = 1, @@ -69,11 +96,6 @@ static const struct max17055_alert_profile alert_profile[] = { }, }; -const struct battery_info *battery_get_info(void) -{ - return &info[BATT_ID]; -} - const struct max17055_batt_profile *max17055_get_batt_profile(void) { return &batt_profile[BATT_ID]; @@ -83,6 +105,12 @@ const struct max17055_alert_profile *max17055_get_alert_profile(void) { return &alert_profile[BATT_ID]; } +#endif /* CONFIG_BATTERY_MAX17055 */ + +const struct battery_info *battery_get_info(void) +{ + return &info[BATT_ID]; +} int board_cut_off_battery(void) { @@ -103,6 +131,7 @@ enum battery_disconnect_state battery_get_disconnect_state(void) int charger_profile_override(struct charge_state_data *curr) { +#ifdef CONFIG_BATTERY_MAX17055 /* battery temp in 0.1 deg C */ int bat_temp_c = curr->batt.temperature - 2731; @@ -134,6 +163,9 @@ int charger_profile_override(struct charge_state_data *curr) /* TEMP_ZONE_2 */ {450, BATTERY_SIMPLO_CHARGE_MAX_TEMP * 10, 3350, 4300}, }, + [BATTERY_MITSUMI] = { + /* unused */ + }, }; BUILD_ASSERT(ARRAY_SIZE(temp_zones[0]) == TEMP_ZONE_COUNT); BUILD_ASSERT(ARRAY_SIZE(temp_zones) == BATTERY_COUNT); @@ -168,6 +200,7 @@ int charger_profile_override(struct charge_state_data *curr) curr->state = ST_IDLE; break; } +#endif /* CONFIG_BATTERY_MAX17055 */ /* * When the charger says it's done charging, even if fuel gauge says diff --git a/board/kukui/board.h b/board/kukui/board.h index 37a7005d32..01677e04da 100644 --- a/board/kukui/board.h +++ b/board/kukui/board.h @@ -128,8 +128,12 @@ #define CONFIG_BATTERY_CUT_OFF #define CONFIG_BATTERY_PRESENT_CUSTOM #define CONFIG_BATTERY_REVIVE_DISCONNECT +#ifdef BOARD_KRANE +#define CONFIG_BATTERY_MM8013 +#else #define CONFIG_BATTERY_MAX17055 #define CONFIG_BATTERY_MAX17055_ALERT +#endif /* Battery parameters for max17055 ModelGauge m5 algorithm. */ #define BATTERY_MAX17055_RSENSE 5 /* m-ohm */ |