📄 csl_i2c.h
字号:
/** * @brief Get the Receive Ready status information * @param (Uint16*) */ CSL_I2C_QUERY_RX_RDY = 3, /** * @brief Get the Transmit Ready status information * @param (Uint16*) */ CSL_I2C_QUERY_TX_RDY = 4, /** * @brief Get the Register Ready status information * @param (Uint16*) */ CSL_I2C_QUERY_ACS_RDY = 5, /** * @brief Get the Stop Condition Data bit information * @param (Uint16*) */ CSL_I2C_QUERY_SCD = 6, /** * @brief Get the Address Zero (General Call) detection status * @param (Uint16*) */ CSL_I2C_QUERY_AD0 = 7, /** * @brief Get the Receive overflow status information * @param (Uint16*) */ CSL_I2C_QUERY_RSFULL = 8, /** * @brief Get the Transmit underflow status information * @param (Uint16*) */ CSL_I2C_QUERY_XSMT = 9, /** * @brief Get the Address as Slave bit information * @param (Uint16*) */ CSL_I2C_QUERY_AAS = 10, /** * @brief Get the Arbitration Lost status information * @param (Uint16*) */ CSL_I2C_QUERY_AL = 11, /** * @brief Get the Reset Done status bit information * @param (Uint16*) */ CSL_I2C_QUERY_RDONE = 12, /** * @brief Get no of bits of next byte to be received or transmitted * @param (Uint16*) */ CSL_I2C_QUERY_BITCOUNT = 13, /** * @brief Get the interrupt code for the interrupt that occured * @param (Uint16*) */ CSL_I2C_QUERY_INTCODE = 14, /** * @brief Get the revision level of the I2C * @param (Uint16*) */ CSL_I2C_QUERY_REV = 15, /** * @brief Get the class of the peripheral * @param (Uint16*) */ CSL_I2C_QUERY_CLASS = 16, /** * @brief Get the type of the peripheral * @param (Uint16*) */ CSL_I2C_QUERY_TYPE = 17, /** * @brief Get the slave direction * @param (Uint16*) */ CSL_I2C_QUERY_SDIR = 18, /** * @brief Get the acknowledgement status * @param (Uint16*) */ CSL_I2C_QUERY_NACKSNT = 19} CSL_I2cHwStatusQuery;/** @brief Enumeration for queries passed to @a CSL_i2cHwControl() * * This is used to select the commands to control the operations * existing setup of I2C. The arguments to be passed with each * enumeration if any are specified next to the enumeration. */typedef enum { /** * @brief Enable the I2C * @param (None) */ CSL_I2C_CMD_ENABLE = 1, /** * @brief Configure the I2C pins as GPIO * @param (None) */ CSL_I2C_CMD_CONFIG_AS_GPIO = 2, /** * @brief Reset command to the I2C * @param (None) */ CSL_I2C_CMD_RESET = 3, /** * @brief Bring the I2C out of reset * @param (None) */ CSL_I2C_CMD_OUTOFRESET = 4, /** * @brief Clear the status bits. The argument next to the command * specifies the status bit to be cleared. The status bit * can be : * CSL_I2C_CLEAR_AL, * CSL_I2C_CLEAR_NACK, * CSL_I2C_CLEAR_ARDY, * CSL_I2C_CLEAR_RRDY, * CSL_I2C_CLEAR_XRDY, * CSL_I2C_CLEAR_GC * @param (None) */ CSL_I2C_CMD_CLEAR_STATUS = 5, /** * @brief Set the address of the Slave device * @param (Uint16 *) */ CSL_I2C_CMD_SET_SLAVE_ADDR = 6, /** * @brief Set the Data Count * @param (Uint16 *) */ CSL_I2C_CMD_SET_DATA_COUNT = 7, /** * @brief Set the start condition * @param (None) */ CSL_I2C_CMD_START = 8, /** * @brief Set the stop condition * @param (None) */ CSL_I2C_CMD_STOP = 9, /** * @brief Set the transmission mode * @param (None) */ CSL_I2C_CMD_DIR_TRANSMIT = 10, /** * @brief Set the receiver mode * @param (None) */ CSL_I2C_CMD_DIR_RECEIVE = 11, /** * @brief Set the Repeat Mode * @param (None) */ CSL_I2C_CMD_RM_ENABLE = 12, /** * @brief Disable the Repeat Mode * @param (None) */ CSL_I2C_CMD_RM_DISABLE = 13, /** * @brief Set the loop back mode * @param (None) */ CSL_I2C_CMD_DLB_ENABLE = 14, /** * @brief Set the loop back mode * @param (None) */ CSL_I2C_CMD_DLB_DISABLE = 15} CSL_I2cHwControlCmd;/**************************************************************************\* I2C global function declarations\**************************************************************************//** ============================================================================ * @n@b CSL_i2cInit * * @b Description * @n This is the initialization function for the I2C. This function is * idempotent in that calling it many times is same as calling it once. * This function initializes the CSL data structures, and doesn't affect * the H/W. * * @b Arguments @verbatim pContext Context information for the instance. Should be NULL @endverbatim * * <b> Return Value </b> CSL_Status * @li CSL_SOK - Always returns * * <b> Pre Condition </b> * @n None * * <b> Post Condition </b> * @n None * * @b Modifies * @n None * * @b Example * @verbatim ... if (CSL_sysInit() == CSL_SOK) { CSL_i2cInit(); } @endverbatim * ============================================================================ */CSL_Status CSL_i2cInit ( CSL_I2cContext *pContext);/** ============================================================================ * @n@b CSL_i2cOpen * * @b Description * @n This function populates the peripheral data object for the instance * and returns a handle to the instance. * The open call sets up the data structures for the particular instance * of I2C device. The device can be re-opened anytime after it has been * normally closed if so required. The handle returned by this call is * input as an essential argument for rest of the APIs described for * this module. * * @b Arguments * @verbatim pI2cObj Pointer to the object that holds reference to the instance of I2C requested after the call i2cNum Instance of I2C to which a handle is requested pI2cParam Specifies if I2C should be opened with exclusive or shared access to the associate pins pStatus This returns the status (success/errors) of the call @endverbatim * * <b> Return Value </b> * CSL_I2cHandle * Valid I2C instance handle will be returned if status value is * equal to CSL_SOK. * * <b> Pre Condition </b> * @n @a CSL_i2cInit() must be called successfully. * * <b> Post Condition </b> * @n None * * @b Modifies * @n None * * @b Example: * @verbatim CSL_status status; CSL_I2cObj i2cObj; CSL_I2cHandle hI2c; hI2c = CSL_I2cOpen (&i2cObj, CSL_I2C, NULL, &status ); @endverbatim * ============================================================================ */CSL_I2cHandle CSL_i2cOpen ( CSL_I2cObj *hI2cObj, CSL_InstNum i2cNum, CSL_I2cParam *pI2cParam, CSL_Status *status);/** ============================================================================ * @n@b CSL_i2cClose * * @b Description * @n This function closes the specified instance of I2C. * * @b Arguments * @verbatim hI2c Pointer to the object that holds reference to the instance of I2C requested after the call @endverbatim * * <b> Return Value </b> CSL_Status * @li CSL_SOK - Close Successful * @li CSL_ESYS_BADHANDLE - Invalid handle * * <b> Pre Condition </b> * @n The device should be successfully opened. * * <b> Post Condition </b> * @n None * * @b Modifies * @n I2C Handle * * @b Example * @verbatim CSL_I2cHandle hI2c; ... status = CSL_i2cClose(hI2c); ... * @endverbatim * ============================================================================ */CSL_Status CSL_i2cClose ( CSL_I2cHandle hI2c);/** ============================================================================ * @n@b CSL_i2cHwSetup * * @b Description * @n This function initializes the device registers with the appropriate * values provided through the HwSetup Data structure. This function * needs to be called only if the HwSetup Structure was not previously * passed through the Open call. After the Setup is completed, the device * is ready for operation. For information passed through the HwSetup * Data structure refer @a CSL_i2cHwSetup. * * @b Arguments * @verbatim hI2c Pointer to the object that holds reference to the instance of I2C requested after the call hwSetup Pointer to setup structure which contains the information to program I2C to a useful state @endverbatim * * <b> Return Value </b> CSL_Status * @li CSL_SOK - Close Successful * @li CSL_ESYS_BADHANDLE - Invalid handle * * <b> Pre Condition </b> * @n Both @a CSL_i2cInit() and @a CSL_i2cOpen() must be called successfully * in that order before this function can be called. The user has to * allocate space for & fill in the main setup structure appropriately * before calling this function. * * <b> Post Condition </b> * @n Both @a CSL_i2cInit() and @a CSL_i2cOpen() must be called successfully * in that order before @a CSL_i2cHwSetup() can be called. * * @b Modifies * @n The registers of the specified I2C instance will be setup * according to value passed. * * @b Modifies * @n Hardware registers of the specified I2C instance. * * @b Example * @verbatim CSL_i2cHandle hI2c; CSL_i2cHwSetup hwSetup = CSL_I2C_HWSETUP_DEFAULTS; ... CSL_i2cHwSetup(hI2c, &hwSetup); ... @endverbatim * * <b> Return Value </b> CSL_Status * @li CSL_SOK - HW setup is successful * @li CSL_ESYS_BADHANDLE - Invalid handle
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -