summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2019-03-12 14:58:07 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-03-13 10:38:53 -0700
commit5d868a77265927367c59b49c5a8b677bb8fefbd5 (patch)
treef710bad28fb7870d71565eb90ce290088e5601bc /board
parentae9ac3459d2e76e1b424d6b0d5385bda2c4663ae (diff)
downloadchrome-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.c47
-rw-r--r--board/kukui/board.h4
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 */