summaryrefslogtreecommitdiffstats
path: root/src/include/usr/i2c
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2018-08-30 08:10:40 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-09-20 17:06:38 -0500
commit165bb46bac36d2774b7fe36543024710053ec3d0 (patch)
treef21eb63d24214397c161e76641ee6ef4c1added0 /src/include/usr/i2c
parent5abc57bc8352ef13ab7aa23edfbc2d607f9cd5b2 (diff)
downloadtalos-hostboot-165bb46bac36d2774b7fe36543024710053ec3d0.tar.gz
talos-hostboot-165bb46bac36d2774b7fe36543024710053ec3d0.zip
Support fapi2 i2c functions
New interface in fapi2 to perform i2c operations directly. This is needed for OCMB access before we get OMI bus running, specifically as part of a cmd/rsp protocol. Change-Id: I8b778f12f8c0c6820ceb51146f1e21d30891c964 RTC:197029 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/63919 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/i2c')
-rw-r--r--src/include/usr/i2c/i2creasoncodes.H43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/include/usr/i2c/i2creasoncodes.H b/src/include/usr/i2c/i2creasoncodes.H
index 331c8d4fe..4ce6c3a81 100644
--- a/src/include/usr/i2c/i2creasoncodes.H
+++ b/src/include/usr/i2c/i2creasoncodes.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2016 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -62,6 +62,8 @@ enum i2cModuleId
I2C_PAGE_SWITCH_OP = 0x0C,
I2C_PAGE_UNLOCK_OP = 0x0D,
I2C_CHOOSE_EEPROM_PAGE = 0x0E,
+ FAPI_I2C_PERFORM_OP = 0x0F,
+ READ_I2C_ATTRIBUTES = 0x10,
};
@@ -73,25 +75,26 @@ enum i2cModuleId
*/
enum i2cReasonCode
{
- I2C_INVALID_REASONCODE = I2C_COMP_ID | 0x00, // Invalid Reasoncode
- I2C_INVALID_DATA_BUFFER = I2C_COMP_ID | 0x01, // Invalid Data Buffer pointer
- I2C_INVALID_OP_TYPE = I2C_COMP_ID | 0x02, // Invalid Operation type
- I2C_FIFO_TIMEOUT = I2C_COMP_ID | 0x03, // Timed out waiting on FIFO
- I2C_BUS_NOT_READY = I2C_COMP_ID | 0x04, // Bus Not ready
- I2C_CMD_COMP_TIMEOUT = I2C_COMP_ID | 0x05, // Timeout waiting for Cmd Complete
- I2C_HW_ERROR_FOUND = I2C_COMP_ID | 0x06, // Error found in status register
- I2C_MASTER_SENTINEL_TARGET = I2C_COMP_ID | 0x07, // Master Sentinel used as target
- I2C_NO_CENTAUR_FOUND = I2C_COMP_ID | 0x08, // No Centaur chip found
- I2C_NO_PROC_FOUND = I2C_COMP_ID | 0x09, // No Processor chip found
- I2C_ATTRIBUTE_NOT_FOUND = I2C_COMP_ID | 0x0A, // Needed I2C-related Attribute not found
- I2C_NACK_ONLY_FOUND = I2C_COMP_ID | 0x0B, // Only NACK found in status register
- I2C_ARBITRATION_LOST_ONLY_FOUND = I2C_COMP_ID | 0x0C, // Bus Arbi lost found in status reg
- I2C_RUNTIME_INTERFACE_ERR = I2C_COMP_ID | 0x0D, // Read/write unavailable at runtime
- I2C_RUNTIME_ERR = I2C_COMP_ID | 0x0E, // Failed run-time operation
- I2C_RUNTIME_INVALID_OFFSET_LENGTH = I2C_COMP_ID | 0x0F, // Offset length of invalid size
- I2C_INVALID_EEPROM_PAGE_MUTEX = I2C_COMP_ID | 0x10, // Error getting page mutex for i2c engine.
- I2C_INVALID_EEPROM_PAGE_REQUEST = I2C_COMP_ID | 0x11, // Invalid EEPROM page request
- I2C_FAILURE_UNLOCKING_EEPROM_PAGE = I2C_COMP_ID | 0x12 // Error while attempting to unlock the eeprom page
+ I2C_INVALID_REASONCODE = I2C_COMP_ID | 0x00, // Invalid Reasoncode
+ I2C_INVALID_DATA_BUFFER = I2C_COMP_ID | 0x01, // Invalid Data Buffer pointer
+ I2C_INVALID_OP_TYPE = I2C_COMP_ID | 0x02, // Invalid Operation type
+ I2C_FIFO_TIMEOUT = I2C_COMP_ID | 0x03, // Timed out waiting on FIFO
+ I2C_BUS_NOT_READY = I2C_COMP_ID | 0x04, // Bus Not ready
+ I2C_CMD_COMP_TIMEOUT = I2C_COMP_ID | 0x05, // Timeout waiting for Cmd Complete
+ I2C_HW_ERROR_FOUND = I2C_COMP_ID | 0x06, // Error found in status register
+ I2C_MASTER_SENTINEL_TARGET = I2C_COMP_ID | 0x07, // Master Sentinel used as target
+ I2C_NO_CENTAUR_FOUND = I2C_COMP_ID | 0x08, // No Centaur chip found
+ I2C_NO_PROC_FOUND = I2C_COMP_ID | 0x09, // No Processor chip found
+ I2C_ATTRIBUTE_NOT_FOUND = I2C_COMP_ID | 0x0A, // Needed I2C-related Attribute not found
+ I2C_NACK_ONLY_FOUND = I2C_COMP_ID | 0x0B, // Only NACK found in status register
+ I2C_ARBITRATION_LOST_ONLY_FOUND = I2C_COMP_ID | 0x0C, // Bus Arbi lost found in status reg
+ I2C_RUNTIME_INTERFACE_ERR = I2C_COMP_ID | 0x0D, // Read/write unavailable at runtime
+ I2C_RUNTIME_ERR = I2C_COMP_ID | 0x0E, // Failed run-time operation
+ I2C_RUNTIME_INVALID_OFFSET_LENGTH = I2C_COMP_ID | 0x0F, // Offset length of invalid size
+ I2C_INVALID_EEPROM_PAGE_MUTEX = I2C_COMP_ID | 0x10, // Error getting page mutex for i2c engine.
+ I2C_INVALID_EEPROM_PAGE_REQUEST = I2C_COMP_ID | 0x11, // Invalid EEPROM page request
+ I2C_FAILURE_UNLOCKING_EEPROM_PAGE = I2C_COMP_ID | 0x12, // Error while attempting to unlock the eeprom page
+ INVALID_MASTER_TARGET = I2C_COMP_ID | 0x13, // Master I2C target not valid
};
OpenPOWER on IntegriCloud