/** @file\r
- SMBUS Functions\r
+ Provides library functions to access SMBUS devices. Libraries of this class\r
+ must be ported to a specific SMBUS controller.\r
\r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
+Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
**/\r
\r
\r
**/\r
#define SMBUS_LIB_ADDRESS(SlaveAddress,Command,Length,Pec) \\r
- ( ((Pec) ? SMBUS_LIB_PEC_BIT: 0) | \\r
+ ( ((Pec) ? BIT22: 0) | \\r
(((SlaveAddress) & 0x7f) << 1) | \\r
(((Command) & 0xff) << 8) | \\r
(((Length) & 0x3f) << 16) \\r
\r
@param SmBusAddress Address that encodes the SMBUS Slave Address, SMBUS Command, SMBUS Data Length, and PEC \r
**/\r
-#define SMBUS_LIB_RESERVED(SmBusAddress) ((SmBusAddress) & ~(((1 << 22) - 2) | BIT22))\r
+#define SMBUS_LIB_RESERVED(SmBusAddress) ((SmBusAddress) & ~(BIT23 - 2))\r
\r
/**\r
Executes an SMBUS quick read command.\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
**/\r
VOID\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
**/\r
VOID\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The byte received from the SMBUS.\r
\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Value The 8-bit value to send.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Value The 8-bit value to send.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The parameter of Value.\r
\r
\r
@param SmBusAddress Address that encodes the SMBUS Slave Address,\r
SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The byte read from the SMBUS.\r
\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Value The 8-bit value to write.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Value The 8-bit value to write.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The parameter of Value.\r
\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The byte read from the SMBUS.\r
\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Value The 16-bit value to write.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Value The 16-bit value to write.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The parameter of Value.\r
\r
If Length in SmBusAddress is not zero, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Value The 16-bit value to write.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Value The 16-bit value to write.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The 16-bit value returned by the process call command.\r
\r
If Buffer is NULL, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Buffer Pointer to the buffer to store the bytes read from the SMBUS.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Buffer Pointer to the buffer to store the bytes read from the SMBUS.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_SUCCESS The SMBUS command was executed.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The number of bytes read.\r
\r
If Buffer is NULL, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param Buffer Pointer to the buffer to store the bytes read from the SMBUS.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param Buffer Pointer to the buffer to store the bytes read from the SMBUS.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The number of bytes written.\r
\r
If ReadBuffer is NULL, then ASSERT().\r
If any reserved bits of SmBusAddress are set, then ASSERT().\r
\r
- @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
- SMBUS Command, SMBUS Data Length, and PEC.\r
- @param WriteBuffer Pointer to the buffer of bytes to write to the SMBUS.\r
- @param ReadBuffer Pointer to the buffer of bytes to read from the SMBUS.\r
- @param Status Return status for the executed command.\r
- This is an optional parameter and may be NULL.\r
+ @param SmBusAddress Address that encodes the SMBUS Slave Address,\r
+ SMBUS Command, SMBUS Data Length, and PEC.\r
+ @param WriteBuffer Pointer to the buffer of bytes to write to the SMBUS.\r
+ @param ReadBuffer Pointer to the buffer of bytes to read from the SMBUS.\r
+ @param Status Return status for the executed command.\r
+ This is an optional parameter and may be NULL.\r
+ RETURN_TIMEOUT A timeout occurred while executing the SMBUS command.\r
+ RETURN_DEVICE_ERROR The request was not completed because a failure\r
+ reflected in the Host Status Register bit. Device errors are a result\r
+ of a transaction collision, illegal command field, unclaimed cycle\r
+ (host initiated), or bus errors (collisions).\r
+ RETURN_CRC_ERROR The checksum is not correct (PEC is incorrect)\r
+ RETURN_UNSUPPORTED The SMBus operation is not supported.\r
\r
@return The number of bytes written.\r
\r