diff options
author | elthanhuang <elthan_huang@compal.corp-partner.google.com> | 2020-10-07 21:42:19 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-10-07 20:42:10 +0000 |
commit | 63eac1804338622856672e8d24be826a0523a3df (patch) | |
tree | d61b6db0c8db28a9135688e974154816ec117182 | |
parent | 51fd9a53532ac9774a3ae84227d89542ba8c69a1 (diff) | |
download | chrome-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.c | 191 | ||||
-rw-r--r-- | board/vilboz/board.h | 4 |
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, }; |