diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 1fc4f7ff02..37ebb38032 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -657,6 +657,7 @@ void charger_task(void) curr.desired_input_current = get_desired_input_current(prev_bp, info); charger_set_input_current(curr.desired_input_current); + hook_notify(HOOK_BATTERY_SOC_CHANGE); } /* diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 2e34367459..358660d5d4 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -1214,6 +1214,15 @@ static void pd_update_try_source(void) */ pd_try_src_enable = drp_state == PD_DRP_TOGGLE_ON && batt_soc >= CONFIG_USB_PD_TRY_SRC_MIN_BATT_SOC; +#if defined(CONFIG_BATTERY_PRESENT_CUSTOM) || \ + defined(CONFIG_BATTERY_PRESENT_GPIO) + /* + * When battery is cutoff in ship mode it may not be reliable to + * check if battery is present with its state of charge. + * Also check if battery is initialized and ready to provide power. + */ + pd_try_src_enable &= (battery_is_present() == BP_YES); +#endif /* * Clear this flag to cover case where a TrySrc