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:
Michael Niewöhner 2021-09-27 18:45:10 +02:00
parent 01b3c40bfe
commit 6eaffcdbb1
13 changed files with 5 additions and 28 deletions

View File

@ -43,7 +43,6 @@ config CPU_SPECIFIC_OPTIONS
select PLATFORM_USES_FSP2_2
select PM_ACPI_TIMER_OPTIONAL
select PMC_GLOBAL_RESET_ENABLE_LOCK
select PMC_LOW_POWER_MODE_PROGRAM
select SOC_INTEL_COMMON
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
select SOC_INTEL_COMMON_BLOCK

View File

@ -160,7 +160,7 @@ static void soc_pmc_init(struct device *dev)
* Disabling ACPI PM timer also switches off TCO
*/
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)

View File

@ -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 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 */
void pmc_set_acpi_mode(void);

View File

@ -50,12 +50,6 @@ config PMC_GLOBAL_RESET_ENABLE_LOCK
Note that the reset register is still at 0xCF9 this only
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
bool
default n

View File

@ -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;
}
#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)
{
if (!CONFIG(NO_SMM) && !acpi_is_wakeup_s3()) {

View File

@ -33,7 +33,6 @@ config CPU_SPECIFIC_OPTIONS
select PLATFORM_USES_FSP2_1
select PM_ACPI_TIMER_OPTIONAL
select PMC_GLOBAL_RESET_ENABLE_LOCK
select PMC_LOW_POWER_MODE_PROGRAM
select SOC_INTEL_COMMON
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
select SOC_INTEL_COMMON_BLOCK

View File

@ -100,7 +100,7 @@ static void soc_pmc_init(struct device *dev)
* Disabling ACPI PM timer also switches off TCO
*/
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)

View File

@ -33,7 +33,6 @@ config CPU_SPECIFIC_OPTIONS
select PLATFORM_USES_FSP2_1
select PM_ACPI_TIMER_OPTIONAL
select PMC_GLOBAL_RESET_ENABLE_LOCK
select PMC_LOW_POWER_MODE_PROGRAM
select CPU_INTEL_COMMON
select SOC_INTEL_COMMON
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE

View File

@ -74,7 +74,7 @@ static void pmc_init(void *unused)
* Disabling ACPI PM timer also switches off TCO
*/
if (!CONFIG(USE_PM_ACPI_TIMER))
pmc_disable_acpi_timer();
setbits8(pmc_mmio_regs() + PCH_PWRM_ACPI_TMR_CTL, ACPI_TIM_DIS);
}
/*

View File

@ -34,7 +34,6 @@ config CPU_SPECIFIC_OPTIONS
select PLATFORM_USES_FSP2_2
select PM_ACPI_TIMER_OPTIONAL
select PMC_GLOBAL_RESET_ENABLE_LOCK
select PMC_LOW_POWER_MODE_PROGRAM
select SOC_INTEL_COMMON
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
select SOC_INTEL_COMMON_BLOCK

View File

@ -100,7 +100,7 @@ static void soc_pmc_init(struct device *dev)
* Disabling ACPI PM timer also switches off TCO
*/
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)

View File

@ -42,7 +42,6 @@ config CPU_SPECIFIC_OPTIONS
select PLATFORM_USES_FSP2_2
select PM_ACPI_TIMER_OPTIONAL
select PMC_GLOBAL_RESET_ENABLE_LOCK
select PMC_LOW_POWER_MODE_PROGRAM
select SOC_INTEL_COMMON
select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
select SOC_INTEL_COMMON_BLOCK

View File

@ -159,7 +159,7 @@ static void soc_pmc_init(struct device *dev)
* Disabling ACPI PM timer also switches off TCO
*/
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)