diff options
Diffstat (limited to 'ReferenceCode/Chipset/SystemAgent/MemoryInit/Pei/MrcOemSmbus.h')
-rw-r--r-- | ReferenceCode/Chipset/SystemAgent/MemoryInit/Pei/MrcOemSmbus.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/ReferenceCode/Chipset/SystemAgent/MemoryInit/Pei/MrcOemSmbus.h b/ReferenceCode/Chipset/SystemAgent/MemoryInit/Pei/MrcOemSmbus.h new file mode 100644 index 0000000..c6569bd --- /dev/null +++ b/ReferenceCode/Chipset/SystemAgent/MemoryInit/Pei/MrcOemSmbus.h @@ -0,0 +1,119 @@ +/** @file + This file contains SMBus related functions. + +@copyright + Copyright (c) 1999 - 2012 Intel Corporation. All rights reserved. + This software and associated documentation (if any) is furnished + under a license and may only be used or copied in accordance + with the terms of the license. Except as permitted by such + license, no part of this software or documentation may be + reproduced, stored in a retrieval system, or transmitted in any + form or by any means without the express written consent of + Intel Corporation. + + This file contains an 'Intel Peripheral Driver' and uniquely + identified as "Intel Reference Module" and is + licensed for Intel CPUs and chipsets under the terms of your + license agreement with Intel or your vendor. This file may + be modified by the user, subject to additional terms of the + license agreement. +**/ +#ifndef _MrcOemSmbus_h_ +#define _MrcOemSmbus_h_ + +#ifndef MRC_MINIBIOS_BUILD +#include <Tiano.h> +#include <EdkIIGlueBaseTypes.h> +#include <EdkIIGlueSmbusLib.h> +#endif // MRC_MINIBIOS_BUILD +#pragma pack (push, 1) +#include "MrcTypes.h" +#include "MrcApi.h" +#include "MrcOemDebugPrint.h" + +#ifdef MRC_MINIBIOS_BUILD +#include "smb.h" +#endif // MRC_MINIBIOS_BUILD + +/** +@brief + Perform a byte read from the specified SMBus device address. + + @param[in] SmbusBaseAddress - The SMBus base address. + @param[in] SmBusDeviceAddress - SMBus device address to read from. + @param[in] Offset - Byte offset to read from. + @param[out] Value - Location to store read value. + + @retval: mrcSuccess if the read is successful, otherwise mrcFail and the read data is set to zero. +**/ +extern +MrcStatus +MrcOemSmbusRead8 ( + IN const U32 SmbusBaseAddress, + IN const U8 SmBusDeviceAddress, + IN const U8 Offset, + OUT U8 *const Value + ); + +/** +@brief + Perform a byte write to the specified SMBus device address. + + @param[in] SmbusBaseAddress - The SMBus base address. + @param[in] SmBusDeviceAddress - SMBus device address to write to. + @param[in] Offset - Byte offset to write to. + @param[in] Value - The value to write. + + @retval: mrcSuccess if the write is successful, otherwise mrcFail. +**/ +extern +MrcStatus +MrcOemSmbusWrite8 ( + IN const U32 SmbusBaseAddress, + IN const U8 SmBusDeviceAddress, + IN const U8 Offset, + IN U8 Value + ); + +/** +@brief + Perform a word read from the specified SMBus device address. + + @param[in] SmbusBaseAddress - The SMBus base address. + @param[in] SmBusDeviceAddress - SMBus device address to read from. + @param[in] Offset - Offset to read from. + @param[out] Value - Location to store read value. + + @retval: mrcSuccess if the read is successful, otherwise mrcFail and the read data is set to zero. +**/ +extern +MrcStatus +MrcOemSmbusRead16 ( + IN const U32 SmbusBaseAddress, + IN const U8 SmBusDeviceAddress, + IN const U8 Offset, + OUT U16 *const Value + ); + +/** +@brief + Perform a word write to the specified SMBus device address. + + @param[in] SmbusBaseAddress - The SMBus base address. + @param[in] SmBusDeviceAddress - SMBus device address to write to. + @param[in] Offset - Offset to write to. + @param[in] Value - The value to write. + + @retval: mrcSuccess if the write is successful, otherwise mrcFail. +**/ +extern +MrcStatus +MrcOemSmbusWrite16 ( + IN const U32 SmbusBaseAddress, + IN const U8 SmBusDeviceAddress, + IN const U8 Offset, + IN U16 Value + ); + +#pragma pack(pop) +#endif // _MrcOemSmbus_h_ |