summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelthanhuang <elthan_huang@compal.corp-partner.google.com>2020-10-07 21:42:19 +0800
committerCommit Bot <commit-bot@chromium.org>2020-10-07 20:42:10 +0000
commit63eac1804338622856672e8d24be826a0523a3df (patch)
treed61b6db0c8db28a9135688e974154816ec117182
parent51fd9a53532ac9774a3ae84227d89542ba8c69a1 (diff)
downloadchrome-ec-63eac1804338622856672e8d24be826a0523a3df.tar.gz
Vilboz: Add battery information
This patch makes EC configure battery parameters differently based on manufacturer name and device name. Vilboz/Vilboz360 --SMP : L20M3PG0 --LGC : L20L3PG0 --Celxpert : L20C3PG0 --Sunwoda : L20D3PG0 Vilboz14 --LGC : L20L3PG1 --SMP : L20M3PG1 --Sunwoda : L20D3PG1 BUG=b:161470405,b:170076693 BRANCH=Zork TEST=Verify Simplo/Celxpert/Sunwoda battery can be found via EC console. Battery can cut-off by cmd ectool batterycutoff. Change-Id: I9dc1f5c71455a65e2eee001b03a9009644de918c Signed-off-by: elthanhuang <elthan_huang@compal.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2456246 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Reviewed-by: Edward Hill <ecgh@chromium.org> Commit-Queue: Edward Hill <ecgh@chromium.org>
-rw-r--r--board/vilboz/battery.c191
-rw-r--r--board/vilboz/board.h4
2 files changed, 167 insertions, 28 deletions
diff --git a/board/vilboz/battery.c b/board/vilboz/battery.c
index f7b4f2cfb6..c9bbf70a86 100644
--- a/board/vilboz/battery.c
+++ b/board/vilboz/battery.c
@@ -61,19 +61,22 @@ const struct board_batt_params board_battery_info[] = {
},
},
- /* SMP L20M3PG1 */
+ /* SMP L20M3PG1 57W
+ * Gauge IC: TI BQ40Z696A
+ */
[BATTERY_SMP_1] = {
.fuel_gauge = {
.manuf_name = "SMP",
.device_name = "L20M3PG1",
.ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
},
.fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0008,
- .disconnect_val = 0x0000,
+ .mfgacc_support = 1,
+ .reg_addr = 0x0000,
+ .reg_mask = 0x6000,
+ .disconnect_val = 0x6000,
}
},
.batt_info = {
@@ -82,11 +85,43 @@ const struct board_batt_params board_battery_info[] = {
.voltage_min = 9000, /* mV */
.precharge_current = 247, /* mA */
.start_charging_min_c = 0,
- .start_charging_max_c = 60,
+ .start_charging_max_c = 50,
.charging_min_c = 0,
- .charging_max_c = 50,
+ .charging_max_c = 60,
.discharging_min_c = -20,
- .discharging_max_c = 60,
+ .discharging_max_c = 70,
+ },
+ },
+
+ /* SMP L20M3PG0 47W
+ * Gauge IC: TI BQ40Z696A
+ */
+ [BATTERY_SMP_2] = {
+ .fuel_gauge = {
+ .manuf_name = "SMP",
+ .device_name = "L20M3PG0",
+ .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 = 256, /* 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,
},
},
@@ -119,20 +154,22 @@ const struct board_batt_params board_battery_info[] = {
},
},
- /* LGC L20L3PG1 */
+ /* LGC L20L3PG1 57W
+ * Gauge IC: Renesas
+ */
[BATTERY_LGC_1] = {
.fuel_gauge = {
- .manuf_name = "LGC2020",
+ .manuf_name = "LGC",
.device_name = "L20L3PG1",
.ship_mode = {
.reg_addr = 0x34,
.reg_data = { 0x0000, 0x1000 },
},
.fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0008,
- .disconnect_val = 0x0000,
- }
+ .reg_addr = 0x0,
+ .reg_mask = 0x0010,
+ .disconnect_val = 0x0,
+ },
},
.batt_info = {
.voltage_max = 13200, /* mV */
@@ -140,11 +177,42 @@ const struct board_batt_params board_battery_info[] = {
.voltage_min = 9000, /* mV */
.precharge_current = 256, /* mA */
.start_charging_min_c = 0,
- .start_charging_max_c = 60,
+ .start_charging_max_c = 50,
.charging_min_c = 0,
- .charging_max_c = 50,
+ .charging_max_c = 60,
.discharging_min_c = -20,
- .discharging_max_c = 73,
+ .discharging_max_c = 70,
+ },
+ },
+
+ /* LGC L20L3PG0 47W
+ * Gauge IC: Renesas
+ */
+ [BATTERY_LGC_2] = {
+ .fuel_gauge = {
+ .manuf_name = "LGC",
+ .device_name = "L20L3PG0",
+ .ship_mode = {
+ .reg_addr = 0x34,
+ .reg_data = { 0x0000, 0x1000 },
+ },
+ .fet = {
+ .reg_addr = 0x0,
+ .reg_mask = 0x0010,
+ .disconnect_val = 0x0,
+ },
+ },
+ .batt_info = {
+ .voltage_max = 13200, /* mV */
+ .voltage_normal = 11580, /* mV */
+ .voltage_min = 9000, /* mV */
+ .precharge_current = 256, /* 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,
},
},
@@ -177,19 +245,54 @@ const struct board_batt_params board_battery_info[] = {
},
},
- /* SUNWODA L20D3PG1 */
+ /* Celxpert L20C3PG0 57W
+ * Gauge IC: TI
+ */
+ [BATTERY_CEL_1] = {
+ .fuel_gauge = {
+ .manuf_name = "Celxpert",
+ .device_name = "L20C3PG0",
+ .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 = 200, /* 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,
+ },
+ },
+
+ /* SUNWODA L20D3PG1 57W
+ * Gauge IC: TI
+ */
[BATTERY_SUNWODA] = {
.fuel_gauge = {
- .manuf_name = "Sunwoda 2020",
+ .manuf_name = "Sunwoda",
.device_name = "L20D3PG1",
.ship_mode = {
- .reg_addr = 0x34,
- .reg_data = { 0x0000, 0x1000 },
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
},
.fet = {
- .reg_addr = 0x00,
- .reg_mask = 0x0008,
- .disconnect_val = 0x0000,
+ .mfgacc_support = 1,
+ .reg_addr = 0x0000,
+ .reg_mask = 0x6000,
+ .disconnect_val = 0x6000,
}
},
.batt_info = {
@@ -198,11 +301,43 @@ const struct board_batt_params board_battery_info[] = {
.voltage_min = 9000, /* mV */
.precharge_current = 250, /* mA */
.start_charging_min_c = 0,
- .start_charging_max_c = 60,
+ .start_charging_max_c = 50,
.charging_min_c = 0,
- .charging_max_c = 50,
+ .charging_max_c = 60,
.discharging_min_c = -20,
- .discharging_max_c = 60,
+ .discharging_max_c = 70,
+ },
+ },
+
+ /* SUNWODA L20D3PG0 47W
+ * Gauge IC: TI
+ */
+ [BATTERY_SUNWODA_1] = {
+ .fuel_gauge = {
+ .manuf_name = "Sunwoda",
+ .device_name = "L20D3PG0",
+ .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 = 205, /* 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,
},
},
};
diff --git a/board/vilboz/board.h b/board/vilboz/board.h
index d558c289c3..ff8fa06ae3 100644
--- a/board/vilboz/board.h
+++ b/board/vilboz/board.h
@@ -78,10 +78,14 @@ enum adc_channel {
enum battery_type {
BATTERY_SMP,
BATTERY_SMP_1,
+ BATTERY_SMP_2,
BATTERY_LGC,
BATTERY_LGC_1,
+ BATTERY_LGC_2,
BATTERY_CEL,
+ BATTERY_CEL_1,
BATTERY_SUNWODA,
+ BATTERY_SUNWODA_1,
BATTERY_TYPE_COUNT,
};