summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/kodama/battery.c74
-rw-r--r--board/kodama/board.c15
-rw-r--r--board/kodama/board.h4
3 files changed, 46 insertions, 47 deletions
diff --git a/board/kodama/battery.c b/board/kodama/battery.c
index e64e0c167a..7b7a3d7cb6 100644
--- a/board/kodama/battery.c
+++ b/board/kodama/battery.c
@@ -95,59 +95,47 @@ int charger_profile_override(struct charge_state_data *curr)
* be turned off. Disable EOC and TE when battery stays over discharge
* state, otherwise enable EOC and TE.
*/
- if (curr->batt.voltage < batt_info->voltage_min) {
- normal_charge_lock = 0;
-
- if (!over_discharge_lock && curr->state == ST_CHARGE) {
- over_discharge_lock = 1;
- rt946x_enable_charge_eoc(0);
- rt946x_enable_charge_termination(0);
- }
- } else {
- over_discharge_lock = 0;
+ if (!(curr->batt.flags & BATT_FLAG_BAD_VOLTAGE)) {
+ if (curr->batt.voltage < batt_info->voltage_min) {
+ normal_charge_lock = 0;
+
+ if (!over_discharge_lock && curr->state == ST_CHARGE) {
+ over_discharge_lock = 1;
+ rt946x_enable_charge_eoc(0);
+ rt946x_enable_charge_termination(0);
+ }
+ } else {
+ over_discharge_lock = 0;
- if (!normal_charge_lock) {
- normal_charge_lock = 1;
- rt946x_enable_charge_eoc(1);
- rt946x_enable_charge_termination(1);
+ if (!normal_charge_lock) {
+ normal_charge_lock = 1;
+ rt946x_enable_charge_eoc(1);
+ rt946x_enable_charge_termination(1);
+ }
}
}
+#ifdef VARIANT_KUKUI_CHARGER_MT6370
+ mt6370_charger_profile_override(curr);
+#endif /* CONFIG_CHARGER_MT6370 */
+
/*
* When smart battery temperature is more than 45 deg C, the max
* charging voltage is 4100mV.
*/
- if (curr->state == ST_CHARGE && bat_temp_c >= 450)
+ if (curr->state == ST_CHARGE && bat_temp_c >= 450
+ && !(curr->batt.flags & BATT_FLAG_BAD_TEMPERATURE))
curr->requested_voltage = 4100;
+ else
+ curr->requested_voltage = batt_info->voltage_max;
-#ifdef VARIANT_KUKUI_CHARGER_MT6370
- mt6370_charger_profile_override(curr);
-#endif /* CONFIG_CHARGER_MT6370 */
-
- if (IS_ENABLED(CONFIG_CHARGER_MAINTAIN_VBAT)) {
- /* Turn charger off if it's not needed */
- if (curr->state == ST_IDLE || curr->state == ST_DISCHARGE) {
- curr->requested_voltage = 0;
- curr->requested_current = 0;
- }
-
- if (!curr->batt.is_present &&
- curr->requested_voltage == 0 &&
- curr->requested_current == 0) {
- /*
- * b/138978212: With adapter plugged in S0, the system
- * will set charging current and voltage as 0V/0A once
- * removing battery. Vsys drop to lower voltage
- * (Vsys < 2.5V) since Vsys's loading, then system will
- * shutdown. Keep max charging voltage as 4.4V when
- * remove battery in S0 to not let the system to trigger
- * under voltage (Vsys < 2.5V).
- */
- CPRINTS("battery disconnected");
- curr->requested_voltage = batt_info->voltage_max;
- curr->requested_current = 500;
- }
- }
+ /*
+ * mt6370's minimum regulated current is 500mA REG17[7:2] 0b100,
+ * values below 0b100 are preserved. In the other hand, it makes sure
+ * mt6370's VOREG set as 4400mV and minimum value of mt6370's ICHG
+ * is limited as 500mA.
+ */
+ curr->requested_current = MAX(500, curr->requested_current);
return 0;
}
diff --git a/board/kodama/board.c b/board/kodama/board.c
index 953c3e7831..deedea88fd 100644
--- a/board/kodama/board.c
+++ b/board/kodama/board.c
@@ -100,6 +100,21 @@ static void board_hpd_status(int port, int hpd_lvl, int hpd_irq)
host_set_single_event(EC_HOST_EVENT_USB_MUX);
}
+
+__override const struct rt946x_init_setting *board_rt946x_init_setting(void)
+{
+ static const struct rt946x_init_setting battery_init_setting = {
+ .eoc_current = 150,
+ .mivr = 4000,
+ .ircmp_vclamp = 32,
+ .ircmp_res = 25,
+ .boost_voltage = 5050,
+ .boost_current = 1500,
+ };
+
+ return &battery_init_setting;
+}
+
struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
{
.port_addr = IT5205_I2C_ADDR1_FLAGS,
diff --git a/board/kodama/board.h b/board/kodama/board.h
index c51ebb628b..d6d7a329b1 100644
--- a/board/kodama/board.h
+++ b/board/kodama/board.h
@@ -29,11 +29,7 @@
#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
/* Battery */
-#ifdef BOARD_KRANE
-#define BATTERY_DESIRED_CHARGING_CURRENT 3500 /* mA */
-#else
#define BATTERY_DESIRED_CHARGING_CURRENT 2000 /* mA */
-#endif /* BOARD_KRANE */
#define CONFIG_CHARGER_MT6370_BACKLIGHT
#define CONFIG_CHARGER_MAINTAIN_VBAT