vc/google/chromeos: Move clear_ec_ap_idle() to common code
Previously the clear_ec_ap_idle() is implemented in cr50_enable_update.c and be called in the file. Move it to common code so that it can be called in cse_board_reset.c TEST=emerge-brask coreboot Change-Id: I2dbe41b01e70f7259f75d967e6df694a3e0fac23 Signed-off-by: Derek Huang <derekhuang@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77631 Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Reka Norman <rekanorman@chromium.org>
This commit is contained in:
parent
5ccc5271ac
commit
c6f4738f98
|
@ -1522,3 +1522,13 @@ int google_chromeec_regulator_get_voltage(uint32_t index, uint32_t *voltage_mv)
|
|||
*voltage_mv = resp.voltage_mv;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void google_chromeec_clear_ec_ap_idle(void)
|
||||
{
|
||||
/* Send EC command to clear AP_IDLE flag */
|
||||
if (!google_chromeec_reboot(EC_REBOOT_NO_OP, EC_REBOOT_FLAG_CLEAR_AP_IDLE |
|
||||
EC_REBOOT_FLAG_ON_AP_SHUTDOWN))
|
||||
printk(BIOS_INFO, "Successfully clear AP_IDLE flag\n");
|
||||
else
|
||||
printk(BIOS_ERR, "Failed to clear EC AP_IDLE flag\n");
|
||||
}
|
||||
|
|
|
@ -411,6 +411,11 @@ int google_chromeec_regulator_set_voltage(uint32_t index, uint32_t min_mv,
|
|||
*/
|
||||
int google_chromeec_regulator_get_voltage(uint32_t index, uint32_t *voltage_mv);
|
||||
|
||||
/**
|
||||
* Clear EC AP_IDLE flag
|
||||
*/
|
||||
void google_chromeec_clear_ec_ap_idle(void);
|
||||
|
||||
#if CONFIG(HAVE_ACPI_TABLES)
|
||||
/**
|
||||
* Writes USB Type-C PD related information to the SSDT
|
||||
|
|
|
@ -41,7 +41,8 @@ config GOOGLE_TPM_IRQ_TIMEOUT_MS
|
|||
750ms otherwise.
|
||||
|
||||
config CR50_RESET_CLEAR_EC_AP_IDLE_FLAG
|
||||
def_bool n
|
||||
bool
|
||||
default y if !SYSTEM_TYPE_LAPTOP
|
||||
help
|
||||
Select this if the variant is a Chromebox/base. This allows AP to direct EC
|
||||
to clear AP_IDLE flag after AP shutdown before triggering CR50 reset and
|
||||
|
|
|
@ -68,19 +68,6 @@ static int cr50_is_reset_needed(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void clear_ec_ap_idle(void)
|
||||
{
|
||||
if (!CONFIG(CR50_RESET_CLEAR_EC_AP_IDLE_FLAG))
|
||||
return;
|
||||
|
||||
/* Send EC command to clear AP_IDLE flag */
|
||||
if (!google_chromeec_reboot(EC_REBOOT_NO_OP, EC_REBOOT_FLAG_CLEAR_AP_IDLE |
|
||||
EC_REBOOT_FLAG_ON_AP_SHUTDOWN))
|
||||
printk(BIOS_INFO, "Successfully clear AP_IDLE flag");
|
||||
else
|
||||
printk(BIOS_ERR, "Failed to clear EC AP_IDLE flag");
|
||||
}
|
||||
|
||||
static void enable_update(void *unused)
|
||||
{
|
||||
int ret;
|
||||
|
@ -170,7 +157,8 @@ static void enable_update(void *unused)
|
|||
}
|
||||
|
||||
if (CONFIG(POWER_OFF_ON_CR50_UPDATE)) {
|
||||
clear_ec_ap_idle();
|
||||
if (CONFIG(CR50_RESET_CLEAR_EC_AP_IDLE_FLAG))
|
||||
google_chromeec_clear_ec_ap_idle();
|
||||
poweroff();
|
||||
}
|
||||
halt();
|
||||
|
|
Loading…
Reference in New Issue