summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chi <peter_chi@wistron.corp-partner.google.com>2022-04-15 17:29:35 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-04 03:18:41 +0000
commit99b644aa4233fc60b44382fc0b9e97aee932445d (patch)
tree3ad92ca4fc489f5bd4b218607fcf487f38514663
parent2ba81854d546bc01f639077fb601fe747709a2dd (diff)
downloadchrome-ec-99b644aa4233fc60b44382fc0b9e97aee932445d.tar.gz
crota: add battery support
BUG=b:229938038 BRANCH=none TEST=make -j BOARD=crota TEST=check "cutoff" in EC console Change-Id: I0584ee5f2d8d694cbca9436babcc813f1a1bb894 Signed-off-by: Peter Chi <peter_chi@wistron.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3588128 Reviewed-by: Boris Mittelberg <bmbm@google.com>
-rw-r--r--board/crota/battery.c348
-rw-r--r--board/crota/board.h14
2 files changed, 330 insertions, 32 deletions
diff --git a/board/crota/battery.c b/board/crota/battery.c
index 84de76c7cc..5bdf307b07 100644
--- a/board/crota/battery.c
+++ b/board/crota/battery.c
@@ -33,70 +33,358 @@
* address, mask, and disconnect value need to be provided.
*/
const struct board_batt_params board_battery_info[] = {
- /* POW-TECH GQA05 Battery Information */
- [BATTERY_POWER_TECH] = {
- /* BQ40Z50 Fuel Gauge */
+ /* ATL GB-S40-496570-010H Battery Information */
+ [BATTERY_ATL] = {
.fuel_gauge = {
- .manuf_name = "POW-TECH",
- .device_name = "BATGQA05L22",
+ .manuf_name = "ATL-ATL3.66",
+ .device_name = "DELL CFD72",
.ship_mode = {
.reg_addr = 0x00,
.reg_data = { 0x0010, 0x0010 },
},
.fet = {
- .mfgacc_support = 1,
+ .mfgacc_support = 0,
.reg_addr = 0x00,
- .reg_mask = 0x2000, /* XDSG */
+ .reg_mask = 0x2000,
.disconnect_val = 0x2000,
}
},
.batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13050, 5),
- .voltage_normal = 11400, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 280, /* mA */
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
.start_charging_min_c = 0,
- .start_charging_max_c = 45,
+ .start_charging_max_c = 60,
.charging_min_c = 0,
- .charging_max_c = 45,
- .discharging_min_c = -10,
+ .charging_max_c = 50,
+ .discharging_min_c = 0,
.discharging_max_c = 60,
},
},
- /* LGC L17L3PB0 Battery Information */
- /*
- * Battery info provided by ODM on b/143477210, comment #11
- */
- [BATTERY_LGC011] = {
+ /* BYD 13076993-009 Battery Information */
+ [BATTERY_BYD] = {
.fuel_gauge = {
- .manuf_name = "LGC",
+ .manuf_name = "BYD",
+ .device_name = "DELL WV3K8",
.ship_mode = {
.reg_addr = 0x00,
.reg_data = { 0x0010, 0x0010 },
},
.fet = {
- .reg_addr = 0x0,
- .reg_mask = 0x6000,
- .disconnect_val = 0x6000,
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
}
},
.batt_info = {
- .voltage_max = TARGET_WITH_MARGIN(13200, 5),
- .voltage_normal = 11550, /* mV */
- .voltage_min = 9000, /* mV */
- .precharge_current = 256, /* mA */
+ .voltage_max = 17400, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
.start_charging_min_c = 0,
- .start_charging_max_c = 45,
+ .start_charging_max_c = 60,
.charging_min_c = 0,
.charging_max_c = 60,
.discharging_min_c = 0,
- .discharging_max_c = 75,
+ .discharging_max_c = 70,
+ },
+ },
+ /* CosMX B00C496570D0002 Battery Information */
+ [BATTERY_COM] = {
+ .fuel_gauge = {
+ .manuf_name = "COM",
+ .device_name = "DELL MVK11",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = -17,
+ .discharging_max_c = 70,
+ },
+ },
+ /* LGES MPPDELWM4C1N Battery Information */
+ [BATTERY_LGC] = {
+ .fuel_gauge = {
+ .manuf_name = "LGC-LGC3.600",
+ .device_name = "DELL XPHX8",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = 0,
+ .discharging_max_c = 70,
+ },
+ },
+ /* SMP 999QA455H Battery Information */
+ [BATTERY_SMP_ATL3] = {
+ .fuel_gauge = {
+ .manuf_name = "SMP-ATL3.66",
+ .device_name = "DELL XDY9K",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = -14,
+ .discharging_max_c = 70,
+ },
+ },
+ /* SMP 999QA454H Battery Information */
+ [BATTERY_SMP_COS3] = {
+ .fuel_gauge = {
+ .manuf_name = "SMP-COS3.66",
+ .device_name = "DELL XDY9K",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = -14,
+ .discharging_max_c = 70,
+ },
+ },
+ /* SWD 1002000008482 Battery Information */
+ [BATTERY_SWD_ATL3] = {
+ .fuel_gauge = {
+ .manuf_name = "SWD-ATL3.661",
+ .device_name = "DELL VKYJX",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = 0,
+ .discharging_max_c = 70,
+ },
+ },
+ /* SWD 1002000008492 Battery Information */
+ [BATTERY_SWD_COS3] = {
+ .fuel_gauge = {
+ .manuf_name = "SWD-COS3.661",
+ .device_name = "DELL VKYJX",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17600, /* mV */
+ .voltage_normal = 15000, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = 0,
+ .discharging_max_c = 70,
+ },
+ },
+ /* SMP 999QA485H Battery Information */
+ [BATTERY_SMP_ATL4] = {
+ .fuel_gauge = {
+ .manuf_name = "SMP-ATL4.24",
+ .device_name = "DELL N9XX1",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17800, /* mV */
+ .voltage_normal = 15200, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = -14,
+ .discharging_max_c = 70,
+ },
+ },
+ /* SMP 999QA486H Battery Information */
+ [BATTERY_SMP_COS4] = {
+ .fuel_gauge = {
+ .manuf_name = "SMP-COS4.26",
+ .device_name = "DELL N9XX1",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17800, /* mV */
+ .voltage_normal = 15200, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = -14,
+ .discharging_max_c = 70,
+ },
+ },
+ /* Sunwoda 1002000009262 Battery Information */
+ [BATTERY_SWD_ATL4] = {
+ .fuel_gauge = {
+ .manuf_name = "SWD-ATL4.242",
+ .device_name = "DELL 3RR09",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17800, /* mV */
+ .voltage_normal = 15200, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = 0,
+ .discharging_max_c = 70,
+ },
+ },
+ /* Sunwoda 1002000009272 Battery Information */
+ [BATTERY_SWD_COS4] = {
+ .fuel_gauge = {
+ .manuf_name = "SWD-COS4.264",
+ .device_name = "DELL 3RR09",
+ .ship_mode = {
+ .reg_addr = 0x00,
+ .reg_data = { 0x0010, 0x0010 },
+ },
+ .fet = {
+ .mfgacc_support = 0,
+ .reg_addr = 0x00,
+ .reg_mask = 0x2000,
+ .disconnect_val = 0x2000,
+ }
+ },
+ .batt_info = {
+ .voltage_max = 17800, /* mV */
+ .voltage_normal = 15200, /* mV */
+ .voltage_min = 12000, /* mV */
+ .precharge_current = 256, /* mA */
+ .start_charging_min_c = 0,
+ .start_charging_max_c = 50,
+ .charging_min_c = 0,
+ .charging_max_c = 50,
+ .discharging_min_c = 0,
+ .discharging_max_c = 70,
},
},
};
BUILD_ASSERT(ARRAY_SIZE(board_battery_info) == BATTERY_TYPE_COUNT);
-const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_POWER_TECH;
+const enum battery_type DEFAULT_BATTERY_TYPE = BATTERY_ATL;
enum battery_present battery_hw_present(void)
{
diff --git a/board/crota/board.h b/board/crota/board.h
index 5d65b855a5..ee96dcbed2 100644
--- a/board/crota/board.h
+++ b/board/crota/board.h
@@ -238,8 +238,18 @@ enum ioex_port {
};
enum battery_type {
- BATTERY_POWER_TECH,
- BATTERY_LGC011,
+ BATTERY_ATL,
+ BATTERY_BYD,
+ BATTERY_COM,
+ BATTERY_LGC,
+ BATTERY_SMP_ATL3,
+ BATTERY_SMP_COS3,
+ BATTERY_SWD_ATL3,
+ BATTERY_SWD_COS3,
+ BATTERY_SMP_ATL4,
+ BATTERY_SMP_COS4,
+ BATTERY_SWD_ATL4,
+ BATTERY_SWD_COS4,
BATTERY_TYPE_COUNT
};