soc/amd/piasso/fch: use common pm_set_power_failure_state functionality
The functionality to restore the previous power state after power was lost that could previously be enabled by selecting MAINBOARD_POWER_RESTORE in the mainboard's Kconfig can now be achieved by selecting POWER_STATE_PREVIOUS_AFTER_FAILURE in the mainboard's Kconfig instead. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: Iab9578ebea89651dc2389bf6ca93ca3f3507eb47 Reviewed-on: https://review.coreboot.org/c/coreboot/+/52302 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
parent
43cd1c0bbe
commit
bbb8c042e4
|
@ -331,14 +331,6 @@ config DISABLE_KEYBOARD_RESET_PIN
|
||||||
functionality isn't disabled, configuring it as an output and driving
|
functionality isn't disabled, configuring it as an output and driving
|
||||||
it as 0 will cause a reset.
|
it as 0 will cause a reset.
|
||||||
|
|
||||||
config MAINBOARD_POWER_RESTORE
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
This option determines what state to go to once power is restored
|
|
||||||
after having been lost in S0. Select this option to automatically
|
|
||||||
return to S0. Otherwise the system will remain in S5 once power
|
|
||||||
is restored.
|
|
||||||
|
|
||||||
config FSP_TEMP_RAM_SIZE
|
config FSP_TEMP_RAM_SIZE
|
||||||
hex
|
hex
|
||||||
default 0x40000
|
default 0x40000
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include <amdblocks/espi.h>
|
#include <amdblocks/espi.h>
|
||||||
#include <amdblocks/i2c.h>
|
#include <amdblocks/i2c.h>
|
||||||
#include <amdblocks/lpc.h>
|
#include <amdblocks/lpc.h>
|
||||||
|
#include <amdblocks/pmlib.h>
|
||||||
#include <amdblocks/smbus.h>
|
#include <amdblocks/smbus.h>
|
||||||
#include <amdblocks/spi.h>
|
#include <amdblocks/spi.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
|
@ -71,6 +72,7 @@ void fch_pre_init(void)
|
||||||
/* After console init */
|
/* After console init */
|
||||||
void fch_early_init(void)
|
void fch_early_init(void)
|
||||||
{
|
{
|
||||||
|
pm_set_power_failure_state();
|
||||||
fch_print_pmxc0_status();
|
fch_print_pmxc0_status();
|
||||||
i2c_soc_early_init();
|
i2c_soc_early_init();
|
||||||
|
|
||||||
|
|
|
@ -239,11 +239,6 @@ void fch_init(void *chip_info)
|
||||||
|
|
||||||
void fch_final(void *chip_info)
|
void fch_final(void *chip_info)
|
||||||
{
|
{
|
||||||
uint8_t restored_power = PM_S5_AT_POWER_RECOVERY;
|
|
||||||
|
|
||||||
if (CONFIG(MAINBOARD_POWER_RESTORE))
|
|
||||||
restored_power = PM_RESTORE_S0_IF_PREV_S0;
|
|
||||||
pm_write8(PM_RTC_SHADOW, restored_power);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -32,10 +32,6 @@
|
||||||
#define PM_SERIRQ_MODE BIT(6)
|
#define PM_SERIRQ_MODE BIT(6)
|
||||||
#define PM_SERIRQ_ENABLE BIT(7)
|
#define PM_SERIRQ_ENABLE BIT(7)
|
||||||
|
|
||||||
#define PM_RTC_SHADOW 0x5b /* state when power resumes */
|
|
||||||
#define PM_S5_AT_POWER_RECOVERY 0x04 /* S5 */
|
|
||||||
#define PM_RESTORE_S0_IF_PREV_S0 0x07 /* S0 if previously at S0 */
|
|
||||||
|
|
||||||
#define PM_EVT_BLK 0x60
|
#define PM_EVT_BLK 0x60
|
||||||
#define WAK_STS BIT(15) /*AcpiPmEvtBlkx00 Pm1Status */
|
#define WAK_STS BIT(15) /*AcpiPmEvtBlkx00 Pm1Status */
|
||||||
#define PCIEXPWAK_STS BIT(14)
|
#define PCIEXPWAK_STS BIT(14)
|
||||||
|
|
Loading…
Reference in New Issue