diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c index 4c1bbe7ed7..8c80a3f0dc 100644 --- a/src/ec/google/chromeec/ec.c +++ b/src/ec/google/chromeec/ec.c @@ -985,6 +985,23 @@ bool google_chromeec_is_usb_pd_attached(void) return resp.type == USB_CHG_TYPE_PD; } +/* This API checks if charger is present. */ +bool google_chromeec_is_charger_present(void) +{ + struct ec_params_battery_dynamic_info params = { + .index = 0, + }; + struct ec_response_battery_dynamic_info resp; + + if (ec_cmd_battery_get_dynamic(PLAT_EC, ¶ms, &resp) == 0) { + /* Check if AC charger is present */ + if (resp.flags & EC_BATT_FLAG_AC_PRESENT) + return true; + } + + return false; +} + int google_chromeec_override_dedicated_charger_limit(uint16_t current_lim, uint16_t voltage_lim) { diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h index cdea70f0b9..afb1485f14 100644 --- a/src/ec/google/chromeec/ec.h +++ b/src/ec/google/chromeec/ec.h @@ -140,6 +140,14 @@ int google_chromeec_get_usb_pd_power_info(enum usb_chg_type *type, /* Check if a USB Power Delivery (PD) charger is attached */ bool google_chromeec_is_usb_pd_attached(void); +/** + * Check if charger is present. + * + * @return true: if the charger is present + * false: if the charger is not present + */ +bool google_chromeec_is_charger_present(void); + /* * Set max current and voltage of a dedicated charger. *