/** @file
|
Header file for PmcLib.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
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_
|