soc/intel: implement ACPI timer disabling per SoC and drop common code
Since it's just a one-liner, implement disabling of the ACPI timer in soc code. This reduces complexity. Change-Id: I434ea87d00f6e919983d9229f79d4adb352fbf27 Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/58020 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
parent
01b3c40bfe
commit
6eaffcdbb1
|
@ -43,7 +43,6 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select PLATFORM_USES_FSP2_2
|
select PLATFORM_USES_FSP2_2
|
||||||
select PM_ACPI_TIMER_OPTIONAL
|
select PM_ACPI_TIMER_OPTIONAL
|
||||||
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
||||||
select PMC_LOW_POWER_MODE_PROGRAM
|
|
||||||
select SOC_INTEL_COMMON
|
select SOC_INTEL_COMMON
|
||||||
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
||||||
select SOC_INTEL_COMMON_BLOCK
|
select SOC_INTEL_COMMON_BLOCK
|
||||||
|
|
|
@ -160,7 +160,7 @@ static void soc_pmc_init(struct device *dev)
|
||||||
* Disabling ACPI PM timer also switches off TCO
|
* Disabling ACPI PM timer also switches off TCO
|
||||||
*/
|
*/
|
||||||
if (!CONFIG(USE_PM_ACPI_TIMER))
|
if (!CONFIG(USE_PM_ACPI_TIMER))
|
||||||
pmc_disable_acpi_timer();
|
setbits8(pmc_mmio_regs() + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pm1_enable_pwrbtn_smi(void *unused)
|
static void pm1_enable_pwrbtn_smi(void *unused)
|
||||||
|
|
|
@ -251,9 +251,6 @@ void pmc_set_power_failure_state(bool target_on);
|
||||||
uint8_t get_pm_pwr_cyc_dur(uint8_t slp_s4_min_assert, uint8_t slp_s3_min_assert,
|
uint8_t get_pm_pwr_cyc_dur(uint8_t slp_s4_min_assert, uint8_t slp_s3_min_assert,
|
||||||
uint8_t slp_a_min_assert, uint8_t pm_pwr_cyc_dur);
|
uint8_t slp_a_min_assert, uint8_t pm_pwr_cyc_dur);
|
||||||
|
|
||||||
/* Disabling ACPI PM timer to ensure switches off TCO and necessary of XTAL OSC shutdown */
|
|
||||||
void pmc_disable_acpi_timer(void);
|
|
||||||
|
|
||||||
/* API to set ACPI mode */
|
/* API to set ACPI mode */
|
||||||
void pmc_set_acpi_mode(void);
|
void pmc_set_acpi_mode(void);
|
||||||
|
|
||||||
|
|
|
@ -50,12 +50,6 @@ config PMC_GLOBAL_RESET_ENABLE_LOCK
|
||||||
Note that the reset register is still at 0xCF9 this only
|
Note that the reset register is still at 0xCF9 this only
|
||||||
controls the enable and lock feature.
|
controls the enable and lock feature.
|
||||||
|
|
||||||
config PMC_LOW_POWER_MODE_PROGRAM
|
|
||||||
bool
|
|
||||||
help
|
|
||||||
Enable this for PMC devices to perform registers programming
|
|
||||||
to ensure low power in active idle scenario.
|
|
||||||
|
|
||||||
config PM_ACPI_TIMER_OPTIONAL
|
config PM_ACPI_TIMER_OPTIONAL
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
|
@ -711,15 +711,6 @@ uint8_t get_pm_pwr_cyc_dur(uint8_t slp_s4_min_assert, uint8_t slp_s3_min_assert,
|
||||||
return PCH_PM_PWR_CYC_DUR;
|
return PCH_PM_PWR_CYC_DUR;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG(PMC_LOW_POWER_MODE_PROGRAM)
|
|
||||||
void pmc_disable_acpi_timer(void)
|
|
||||||
{
|
|
||||||
uint8_t *pmcbase = pmc_mmio_regs();
|
|
||||||
|
|
||||||
setbits8(pmcbase + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
|
|
||||||
}
|
|
||||||
#endif /* PMC_LOW_POWER_MODE_PROGRAM */
|
|
||||||
|
|
||||||
void pmc_set_acpi_mode(void)
|
void pmc_set_acpi_mode(void)
|
||||||
{
|
{
|
||||||
if (!CONFIG(NO_SMM) && !acpi_is_wakeup_s3()) {
|
if (!CONFIG(NO_SMM) && !acpi_is_wakeup_s3()) {
|
||||||
|
|
|
@ -33,7 +33,6 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select PLATFORM_USES_FSP2_1
|
select PLATFORM_USES_FSP2_1
|
||||||
select PM_ACPI_TIMER_OPTIONAL
|
select PM_ACPI_TIMER_OPTIONAL
|
||||||
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
||||||
select PMC_LOW_POWER_MODE_PROGRAM
|
|
||||||
select SOC_INTEL_COMMON
|
select SOC_INTEL_COMMON
|
||||||
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
||||||
select SOC_INTEL_COMMON_BLOCK
|
select SOC_INTEL_COMMON_BLOCK
|
||||||
|
|
|
@ -100,7 +100,7 @@ static void soc_pmc_init(struct device *dev)
|
||||||
* Disabling ACPI PM timer also switches off TCO
|
* Disabling ACPI PM timer also switches off TCO
|
||||||
*/
|
*/
|
||||||
if (!CONFIG(USE_PM_ACPI_TIMER))
|
if (!CONFIG(USE_PM_ACPI_TIMER))
|
||||||
pmc_disable_acpi_timer();
|
setbits8(pmc_mmio_regs() + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pmc_fill_ssdt(const struct device *dev)
|
static void pmc_fill_ssdt(const struct device *dev)
|
||||||
|
|
|
@ -33,7 +33,6 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select PLATFORM_USES_FSP2_1
|
select PLATFORM_USES_FSP2_1
|
||||||
select PM_ACPI_TIMER_OPTIONAL
|
select PM_ACPI_TIMER_OPTIONAL
|
||||||
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
||||||
select PMC_LOW_POWER_MODE_PROGRAM
|
|
||||||
select CPU_INTEL_COMMON
|
select CPU_INTEL_COMMON
|
||||||
select SOC_INTEL_COMMON
|
select SOC_INTEL_COMMON
|
||||||
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
||||||
|
|
|
@ -74,7 +74,7 @@ static void pmc_init(void *unused)
|
||||||
* Disabling ACPI PM timer also switches off TCO
|
* Disabling ACPI PM timer also switches off TCO
|
||||||
*/
|
*/
|
||||||
if (!CONFIG(USE_PM_ACPI_TIMER))
|
if (!CONFIG(USE_PM_ACPI_TIMER))
|
||||||
pmc_disable_acpi_timer();
|
setbits8(pmc_mmio_regs() + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -34,7 +34,6 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select PLATFORM_USES_FSP2_2
|
select PLATFORM_USES_FSP2_2
|
||||||
select PM_ACPI_TIMER_OPTIONAL
|
select PM_ACPI_TIMER_OPTIONAL
|
||||||
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
||||||
select PMC_LOW_POWER_MODE_PROGRAM
|
|
||||||
select SOC_INTEL_COMMON
|
select SOC_INTEL_COMMON
|
||||||
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
||||||
select SOC_INTEL_COMMON_BLOCK
|
select SOC_INTEL_COMMON_BLOCK
|
||||||
|
|
|
@ -100,7 +100,7 @@ static void soc_pmc_init(struct device *dev)
|
||||||
* Disabling ACPI PM timer also switches off TCO
|
* Disabling ACPI PM timer also switches off TCO
|
||||||
*/
|
*/
|
||||||
if (!CONFIG(USE_PM_ACPI_TIMER))
|
if (!CONFIG(USE_PM_ACPI_TIMER))
|
||||||
pmc_disable_acpi_timer();
|
setbits8(pmc_mmio_regs() + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pm1_enable_pwrbtn_smi(void *unused)
|
static void pm1_enable_pwrbtn_smi(void *unused)
|
||||||
|
|
|
@ -42,7 +42,6 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select PLATFORM_USES_FSP2_2
|
select PLATFORM_USES_FSP2_2
|
||||||
select PM_ACPI_TIMER_OPTIONAL
|
select PM_ACPI_TIMER_OPTIONAL
|
||||||
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
select PMC_GLOBAL_RESET_ENABLE_LOCK
|
||||||
select PMC_LOW_POWER_MODE_PROGRAM
|
|
||||||
select SOC_INTEL_COMMON
|
select SOC_INTEL_COMMON
|
||||||
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
|
||||||
select SOC_INTEL_COMMON_BLOCK
|
select SOC_INTEL_COMMON_BLOCK
|
||||||
|
|
|
@ -159,7 +159,7 @@ static void soc_pmc_init(struct device *dev)
|
||||||
* Disabling ACPI PM timer also switches off TCO
|
* Disabling ACPI PM timer also switches off TCO
|
||||||
*/
|
*/
|
||||||
if (!CONFIG(USE_PM_ACPI_TIMER))
|
if (!CONFIG(USE_PM_ACPI_TIMER))
|
||||||
pmc_disable_acpi_timer();
|
setbits8(pmc_mmio_regs() + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pm1_enable_pwrbtn_smi(void *unused)
|
static void pm1_enable_pwrbtn_smi(void *unused)
|
||||||
|
|
Loading…
Reference in New Issue