Upload BSD-licensed Vlv2TbltDevicePkg and Vlv2DeviceRefCodePkg to
https://svn.code.sf.net/p/edk2/code/trunk/edk2/, which are for MinnowBoard MAX open source project. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: David Wei <david.wei@intel.com> Reviewed-by: Mike Wu <mike.wu@intel.com> Reviewed-by: Hot Tian <hot.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16599 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved
|
||||
|
||||
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.
|
||||
|
||||
|
||||
|
||||
Module Name:
|
||||
|
||||
I2CRegs.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Register Definitions for I2C Driver/PEIM.
|
||||
|
||||
--*/
|
||||
#include <Uefi.h>
|
||||
#include <Library/IoLib.h>
|
||||
|
||||
#ifndef I2C_REGS_A0_H
|
||||
#define I2C_REGS_A0_H
|
||||
|
||||
//
|
||||
// FIFO write workaround value.
|
||||
//
|
||||
#define FIFO_WRITE_DELAY 2
|
||||
|
||||
//
|
||||
// MMIO Register Definitions
|
||||
//
|
||||
#define R_IC_CON ( 0x00) // I2C Control
|
||||
#define B_IC_RESTART_EN BIT5
|
||||
#define B_IC_SLAVE_DISABLE BIT6
|
||||
#define V_SPEED_STANDARD 0x02
|
||||
#define V_SPEED_FAST 0x04
|
||||
#define V_SPEED_HIGH 0x06
|
||||
#define B_MASTER_MODE BIT0
|
||||
|
||||
#define R_IC_TAR ( 0x04) // I2C Target Address
|
||||
#define IC_TAR_10BITADDR_MASTER BIT12
|
||||
|
||||
#define R_IC_SAR ( 0x08) // I2C Slave Address
|
||||
#define R_IC_HS_MADDR ( 0x0C) // I2C HS MasterMode Code Address
|
||||
#define R_IC_DATA_CMD ( 0x10) // I2C Rx/Tx Data Buffer and Command
|
||||
|
||||
#define B_READ_CMD BIT8 // 1 = read, 0 = write
|
||||
#define B_CMD_STOP BIT9 // 1 = STOP
|
||||
#define B_CMD_RESTART BIT10 // 1 = IC_RESTART_EN
|
||||
|
||||
#define V_WRITE_CMD_MASK ( 0xFF)
|
||||
|
||||
#define R_IC_SS_SCL_HCNT ( 0x14) // Standard Speed I2C Clock SCL High Count
|
||||
#define R_IC_SS_SCL_LCNT ( 0x18) // Standard Speed I2C Clock SCL Low Count
|
||||
#define R_IC_FS_SCL_HCNT ( 0x1C) // Full Speed I2C Clock SCL High Count
|
||||
#define R_IC_FS_SCL_LCNT ( 0x20) // Full Speed I2C Clock SCL Low Count
|
||||
#define R_IC_HS_SCL_HCNT ( 0x24) // High Speed I2C Clock SCL High Count
|
||||
#define R_IC_HS_SCL_LCNT ( 0x28) // High Speed I2C Clock SCL Low Count
|
||||
#define R_IC_INTR_STAT ( 0x2C) // I2C Inetrrupt Status
|
||||
#define R_IC_INTR_MASK ( 0x30) // I2C Interrupt Mask
|
||||
#define I2C_INTR_GEN_CALL BIT11 // General call received
|
||||
#define I2C_INTR_START_DET BIT10
|
||||
#define I2C_INTR_STOP_DET BIT9
|
||||
#define I2C_INTR_ACTIVITY BIT8
|
||||
#define I2C_INTR_TX_ABRT BIT6 // Set on NACK
|
||||
#define I2C_INTR_TX_EMPTY BIT4
|
||||
#define I2C_INTR_TX_OVER BIT3
|
||||
#define I2C_INTR_RX_FULL BIT2 // Data bytes in RX FIFO over threshold
|
||||
#define I2C_INTR_RX_OVER BIT1
|
||||
#define I2C_INTR_RX_UNDER BIT0
|
||||
#define R_IC_RAW_INTR_STAT ( 0x34) // I2C Raw Interrupt Status
|
||||
#define R_IC_RX_TL ( 0x38) // I2C Receive FIFO Threshold
|
||||
#define R_IC_TX_TL ( 0x3C) // I2C Transmit FIFO Threshold
|
||||
#define R_IC_CLR_INTR ( 0x40) // Clear Combined and Individual Interrupts
|
||||
#define R_IC_CLR_RX_UNDER ( 0x44) // Clear RX_UNDER Interrupt
|
||||
#define R_IC_CLR_RX_OVER ( 0x48) // Clear RX_OVERinterrupt
|
||||
#define R_IC_CLR_TX_OVER ( 0x4C) // Clear TX_OVER interrupt
|
||||
#define R_IC_CLR_RD_REQ ( 0x50) // Clear RD_REQ interrupt
|
||||
#define R_IC_CLR_TX_ABRT ( 0x54) // Clear TX_ABRT interrupt
|
||||
#define R_IC_CLR_RX_DONE ( 0x58) // Clear RX_DONE interrupt
|
||||
#define R_IC_CLR_ACTIVITY ( 0x5C) // Clear ACTIVITY interrupt
|
||||
#define R_IC_CLR_STOP_DET ( 0x60) // Clear STOP_DET interrupt
|
||||
#define R_IC_CLR_START_DET ( 0x64) // Clear START_DET interrupt
|
||||
#define R_IC_CLR_GEN_CALL ( 0x68) // Clear GEN_CALL interrupt
|
||||
#define R_IC_ENABLE ( 0x6C) // I2C Enable
|
||||
#define R_IC_STATUS ( 0x70) // I2C Status
|
||||
|
||||
#define R_IC_SDA_HOLD ( 0x7C) // I2C IC_DEFAULT_SDA_HOLD//16bits
|
||||
|
||||
#define STAT_MST_ACTIVITY BIT5 // Master FSM Activity Status.
|
||||
#define STAT_RFF BIT4 // RX FIFO is completely full
|
||||
#define STAT_RFNE BIT3 // RX FIFO is not empty
|
||||
#define STAT_TFE BIT2 // TX FIFO is completely empty
|
||||
#define STAT_TFNF BIT1 // TX FIFO is not full
|
||||
|
||||
#define R_IC_TXFLR ( 0x74) // Transmit FIFO Level Register
|
||||
#define R_IC_RXFLR ( 0x78) // Receive FIFO Level Register
|
||||
#define R_IC_TX_ABRT_SOURCE ( 0x80) // I2C Transmit Abort Status Register
|
||||
#define R_IC_SLV_DATA_NACK_ONLY ( 0x84) // Generate SLV_DATA_NACK Register
|
||||
#define R_IC_DMA_CR ( 0x88) // DMA Control Register
|
||||
#define R_IC_DMA_TDLR ( 0x8C) // DMA Transmit Data Level
|
||||
#define R_IC_DMA_RDLR ( 0x90) // DMA Receive Data Level
|
||||
#define R_IC_SDA_SETUP ( 0x94) // I2C SDA Setup Register
|
||||
#define R_IC_ACK_GENERAL_CALL ( 0x98) // I2C ACK General Call Register
|
||||
#define R_IC_ENABLE_STATUS ( 0x9C) // I2C Enable Status Register
|
||||
#define R_IC_COMP_PARAM ( 0xF4) // Component Parameter Register
|
||||
#define R_IC_COMP_VERSION ( 0xF8) // Component Version ID
|
||||
#define R_IC_COMP_TYPE ( 0xFC) // Component Type
|
||||
|
||||
#define R_IC_CLK_GATE ( 0xC0) // Clock Gate
|
||||
|
||||
#define I2C_SS_SCL_HCNT_VALUE_100M 0x1DD
|
||||
#define I2C_SS_SCL_LCNT_VALUE_100M 0x1E4
|
||||
#define I2C_FS_SCL_HCNT_VALUE_100M 0x54
|
||||
#define I2C_FS_SCL_LCNT_VALUE_100M 0x9a
|
||||
#define I2C_HS_SCL_HCNT_VALUE_100M 0x7
|
||||
#define I2C_HS_SCL_LCNT_VALUE_100M 0xE
|
||||
|
||||
#define IC_TAR_10BITADDR_MASTER BIT12
|
||||
#define FIFO_SIZE 32
|
||||
#define R_IC_INTR_STAT ( 0x2C) // I2c Inetrrupt Status
|
||||
#define R_IC_INTR_MASK ( 0x30) // I2c Interrupt Mask
|
||||
#define I2C_INTR_GEN_CALL BIT11 // General call received
|
||||
#define I2C_INTR_START_DET BIT10
|
||||
#define I2C_INTR_STOP_DET BIT9
|
||||
#define I2C_INTR_ACTIVITY BIT8
|
||||
#define I2C_INTR_TX_ABRT BIT6 // Set on NACK
|
||||
#define I2C_INTR_TX_EMPTY BIT4
|
||||
#define I2C_INTR_TX_OVER BIT3
|
||||
#define I2C_INTR_RX_FULL BIT2 // Data bytes in RX FIFO over threshold
|
||||
#define I2C_INTR_RX_OVER BIT1
|
||||
#define I2C_INTR_RX_UNDER BIT0
|
||||
|
||||
EFI_STATUS ProgramPciLpssI2C (
|
||||
IN UINT8 BusNo
|
||||
);
|
||||
EFI_STATUS ByteReadI2C_Basic(
|
||||
IN UINT8 BusNo,
|
||||
IN UINT8 SlaveAddress,
|
||||
IN UINTN ReadBytes,
|
||||
OUT UINT8 *ReadBuffer,
|
||||
IN UINT8 Start,
|
||||
IN UINT8 End
|
||||
);
|
||||
EFI_STATUS ByteWriteI2C_Basic(
|
||||
IN UINT8 BusNo,
|
||||
IN UINT8 SlaveAddress,
|
||||
IN UINTN WriteBytes,
|
||||
IN UINT8 *WriteBuffer,
|
||||
IN UINT8 Start,
|
||||
IN UINT8 End
|
||||
);
|
||||
|
||||
EFI_STATUS ByteReadI2C(
|
||||
IN UINT8 BusNo,
|
||||
IN UINT8 SlaveAddress,
|
||||
IN UINT8 Offset,
|
||||
IN UINTN ReadBytes,
|
||||
OUT UINT8 *ReadBuffer
|
||||
);
|
||||
EFI_STATUS ByteWriteI2C(
|
||||
IN UINT8 BusNo,
|
||||
IN UINT8 SlaveAddress,
|
||||
IN UINT8 Offset,
|
||||
IN UINTN WriteBytes,
|
||||
IN UINT8 *WriteBuffer
|
||||
);
|
||||
|
||||
#endif // I2C_REGS_A0_H
|
@@ -0,0 +1,121 @@
|
||||
/**
|
||||
**/
|
||||
/**
|
||||
|
||||
Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@file
|
||||
PchPlatformLib.h
|
||||
|
||||
@brief
|
||||
Header file for PchPlatform Lib.
|
||||
|
||||
**/
|
||||
#ifndef _PCH_PLATFORM_LIB_H_
|
||||
#define _PCH_PLATFORM_LIB_H_
|
||||
|
||||
///
|
||||
/// Timeout value used when Sending / Receiving messages.
|
||||
/// NOTE: this must cover the longest possible wait time
|
||||
/// between message being sent and response being available.
|
||||
/// e.g. Virtual function readiness might take some time.
|
||||
///
|
||||
VOID
|
||||
EFIAPI
|
||||
PchPmTimerStall (
|
||||
IN UINTN Microseconds
|
||||
)
|
||||
/**
|
||||
|
||||
@brief
|
||||
Delay for at least the request number of microseconds.
|
||||
This function would be called by runtime driver, please do not use any MMIO marco here.
|
||||
|
||||
@param[in] Microseconds Number of microseconds to delay.
|
||||
|
||||
@retval NONE
|
||||
|
||||
**/
|
||||
;
|
||||
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
PchIsSpiDescriptorMode (
|
||||
IN UINTN SpiBase
|
||||
)
|
||||
/**
|
||||
|
||||
@brief
|
||||
Check whether SPI is in descriptor mode
|
||||
|
||||
@param[in] SpiBase The PCH Spi Base Address
|
||||
|
||||
@retval TRUE SPI is in descriptor mode
|
||||
@retval FALSE SPI is not in descriptor mode
|
||||
|
||||
**/
|
||||
;
|
||||
|
||||
PCH_STEPPING
|
||||
EFIAPI
|
||||
PchStepping (
|
||||
VOID
|
||||
)
|
||||
/**
|
||||
|
||||
@brief
|
||||
Return Pch stepping type
|
||||
|
||||
@param[in] None
|
||||
|
||||
@retval PCH_STEPPING Pch stepping type
|
||||
|
||||
**/
|
||||
;
|
||||
|
||||
BOOLEAN
|
||||
IsPchSupported (
|
||||
VOID
|
||||
)
|
||||
/**
|
||||
|
||||
@brief
|
||||
Determine if PCH is supported
|
||||
|
||||
@param[in] None
|
||||
|
||||
@retval TRUE PCH is supported
|
||||
@retval FALSE PCH is not supported
|
||||
|
||||
**/
|
||||
;
|
||||
|
||||
VOID
|
||||
EFIAPI
|
||||
PchAlternateAccessMode (
|
||||
IN UINTN IlbBase,
|
||||
IN BOOLEAN AmeCtrl
|
||||
)
|
||||
/**
|
||||
|
||||
This function can be called to enable/disable Alternate Access Mode
|
||||
|
||||
@param[in] IlbBase The PCH ILB Base Address
|
||||
@param[in] AmeCtrl If TRUE, enable Alternate Access Mode.
|
||||
If FALSE, disable Alternate Access Mode.
|
||||
|
||||
@retval NONE
|
||||
|
||||
**/
|
||||
;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user