/** @file Header file for PmcLib. Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PMC_LIB_H_ #define _PMC_LIB_H_ #pragma pack(1) typedef enum { PmcNotASleepState, PmcInS0State, PmcS1SleepState, PmcS2SleepState, PmcS3SleepState, PmcS4SleepState, PmcS5SleepState, PmcUndefinedState, } PMC_SLEEP_STATE; typedef struct { UINT32 Buf0; UINT32 Buf1; UINT32 Buf2; UINT32 Buf3; } PMC_IPC_COMMAND_BUFFER; #pragma pack() /** Get PCH ACPI base address. @retval Address Address of PWRM base address. **/ UINT16 PmcGetAcpiBase ( VOID ); /** Get PCH PWRM base address. @retval Address Address of PWRM base address. **/ UINT32 PmcGetPwrmBase ( VOID ); /** This function checks if RTC Power Failure occurred by reading RTC_PWR_FLR bit @retval RTC Power Failure state: TRUE - Battery is always present. FALSE - CMOS is cleared. **/ BOOLEAN PmcIsRtcBatteryGood ( VOID ); /** This function checks if Power Failure occurred by reading PWR_FLR bit @retval Power Failure state **/ BOOLEAN PmcIsPowerFailureDetected ( VOID ); /** This function checks if RTC Power Failure occurred by reading SUS_PWR_FLR bit @retval SUS Power Failure state **/ BOOLEAN PmcIsSusPowerFailureDetected ( VOID ); /** This function clears Power Failure status (PWR_FLR) **/ VOID PmcClearPowerFailureStatus ( VOID ); /** This function clears Global Reset status (GBL_RST_STS) **/ VOID PmcClearGlobalResetStatus ( VOID ); /** This function clears Host Reset status (HOST_RST_STS) **/ VOID PmcClearHostResetStatus ( VOID ); /** This function clears SUS Power Failure status (SUS_PWR_FLR) **/ VOID PmcClearSusPowerFailureStatus ( VOID ); /** This function sets state to which platform will get after power is reapplied @param[in] PowerStateAfterG3 0: S0 state (boot) 1: S5/S4 State **/ VOID PmcSetPlatformStateAfterPowerFailure ( IN UINT8 PowerStateAfterG3 ); /** This function enables Power Button SMI **/ VOID PmcEnablePowerButtonSmi ( VOID ); /** This function disables Power Button SMI **/ VOID PmcDisablePowerButtonSmi ( VOID ); /** This function reads PM Timer Count driven by 3.579545 MHz clock @retval PM Timer Count **/ UINT32 PmcGetTimerCount ( VOID ); /** Get Sleep Type that platform has waken from @retval SleepType Sleep Type **/ PMC_SLEEP_STATE PmcGetSleepTypeAfterWake ( VOID ); /** Clear PMC Wake Status **/ VOID PmcClearWakeStatus ( VOID ); /** Check if platform boots after shutdown caused by power button override event @retval TRUE Power Button Override occurred in last system boot @retval FALSE Power Button Override didn't occur **/ BOOLEAN PmcIsPowerButtonOverrideDetected ( VOID ); /** This function checks if SMI Lock is set @retval SMI Lock state **/ BOOLEAN PmcIsSmiLockSet ( VOID ); /** Check global SMI enable is set @retval TRUE Global SMI enable is set FALSE Global SMI enable is not set **/ BOOLEAN PmcIsGblSmiEn ( VOID ); #endif // _PMC_LIB_H_