diff options
Diffstat (limited to 'board/vilboz/battery.c')
-rw-r--r-- | board/vilboz/battery.c | 191 |
1 files changed, 163 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, }, }, }; |