/** @file | |
Misc Registers Definition. | |
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR> | |
This program and the accompanying materials are licensed and made available under | |
the terms and conditions of the BSD License that accompanies this distribution. | |
The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php. | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
--*/ | |
#ifndef _I2C_ACCESS_H_ | |
#define _I2C_ACCESS_H_ | |
#include "I2CIoLibPei.h" | |
#define DEFAULT_PCI_BUS_NUMBER_PCH 0 | |
#define PCI_DEVICE_NUMBER_PCH_LPC 31 | |
#define PCI_FUNCTION_NUMBER_PCH_LPC 0 | |
#define R_PCH_LPC_ACPI_BASE 0x40 // ABASE, 16bit | |
#define R_PCH_LPC_ACPI_BASEADR 0x400 // ABASE, 16bit | |
#define B_PCH_LPC_ACPI_BASE_EN BIT1 // Enable Bit | |
#define B_PCH_LPC_ACPI_BASE_BAR 0x0000FF80 // Base Address, 128 Bytes | |
#define V_PCH_ACPI_PM1_TMR_MAX_VAL 0x1000000 // The timer is 24 bit overflow | |
#define B_PCH_ACPI_PM1_TMR_VAL 0xFFFFFF // The timer value mask | |
#define R_PCH_ACPI_PM1_TMR 0x08 // Power Management 1 Timer | |
#define V_PCH_ACPI_PM1_TMR_FREQUENCY 3579545 // Timer Frequency | |
#define PchLpcPciCfg8(Register) I2CLibPeiMmioRead8 (MmPciAddress (0, DEFAULT_PCI_BUS_NUMBER_PCH, PCI_DEVICE_NUMBER_PCH_LPC, 0, Register)) | |
#define PCIEX_BASE_ADDRESS 0xE0000000 | |
#define PCI_EXPRESS_BASE_ADDRESS ((VOID *) (UINTN) PCIEX_BASE_ADDRESS) | |
#define MmPciAddress( Segment, Bus, Device, Function, Register ) \ | |
( (UINTN)PCI_EXPRESS_BASE_ADDRESS + \ | |
(UINTN)(Bus << 20) + \ | |
(UINTN)(Device << 15) + \ | |
(UINTN)(Function << 12) + \ | |
(UINTN)(Register) \ | |
) | |
#endif | |