iicps
Xilinx SDK Drivers API Documentation
xiicps.h File Reference

Data Structures

struct  XIicPs_Config
 This typedef contains configuration information for the device. More...
 
struct  XIicPs
 The XIicPs driver instance data. More...
 

Macros

Configuration options

The following options may be specified or retrieved for the device and enable/disable additional features of the IIC.

Each of the options are bit fields, so more than one may be specified.

#define XIICPS_7_BIT_ADDR_OPTION   0x01U
 7-bit address mode More...
 
#define XIICPS_10_BIT_ADDR_OPTION   0x02U
 10-bit address mode More...
 
#define XIICPS_SLAVE_MON_OPTION   0x04U
 Slave monitor mode. More...
 
#define XIICPS_REP_START_OPTION   0x08U
 Repeated Start. More...
 
Callback events

These constants specify the handler events that are passed to an application event handler from the driver.

These constants are bit masks such that more than one event can be passed to the handler.

#define XIICPS_EVENT_COMPLETE_SEND   0x0001U
 Transmit Complete Event. More...
 
#define XIICPS_EVENT_COMPLETE_RECV   0x0002U
 Receive Complete Event. More...
 
#define XIICPS_EVENT_TIME_OUT   0x0004U
 Transfer timed out. More...
 
#define XIICPS_EVENT_ERROR   0x0008U
 Receive error. More...
 
#define XIICPS_EVENT_ARB_LOST   0x0010U
 Arbitration lost. More...
 
#define XIICPS_EVENT_NACK   0x0020U
 NACK Received. More...
 
#define XIICPS_EVENT_SLAVE_RDY   0x0040U
 Slave ready. More...
 
#define XIICPS_EVENT_RX_OVR   0x0080U
 RX overflow. More...
 
#define XIICPS_EVENT_TX_OVR   0x0100U
 TX overflow. More...
 
#define XIICPS_EVENT_RX_UNF   0x0200U
 RX underflow. More...
 

Role constants

These constants are used to pass into the device setup routines to set up the device according to transfer direction.

#define SENDING_ROLE   1
 Transfer direction is sending. More...
 
#define RECVING_ROLE   0
 Transfer direction is receiving. More...
 
#define XIICPS_MAX_TRANSFER_SIZE   (u32)(255U - 3U)
 Max transfer size. More...
 
#define XIicPs_SendByte(InstancePtr)
 Place one byte into the transmit FIFO. More...
 
#define XIicPs_RecvByte(InstancePtr)
 Receive one byte from FIFO. More...
 
typedef void(* XIicPs_IntrHandler )(void *CallBackRef, u32 StatusEvent)
 The handler data type allows the user to define a callback function to respond to interrupt events in the system. More...
 
XIicPs_ConfigXIicPs_LookupConfig (u16 DeviceId)
 Looks up the device configuration based on the unique device ID. More...
 
s32 XIicPs_CfgInitialize (XIicPs *InstancePtr, XIicPs_Config *ConfigPtr, u32 EffectiveAddr)
 Initializes a specific XIicPs instance such that the driver is ready to use. More...
 
void XIicPs_Abort (XIicPs *InstancePtr)
 Aborts a transfer in progress by resetting the FIFOs. More...
 
void XIicPs_Reset (XIicPs *InstancePtr)
 Resets the IIC device. More...
 
s32 XIicPs_BusIsBusy (XIicPs *InstancePtr)
 Check whether the I2C bus is busy. More...
 
s32 TransmitFifoFill (XIicPs *InstancePtr)
 Put more data into the transmit FIFO, number of bytes is ether expected number of bytes for this transfer or available space in FIFO, which ever is less. More...
 
void XIicPs_SetStatusHandler (XIicPs *InstancePtr, void *CallBackRef, XIicPs_IntrHandler FunctionPtr)
 This function sets the status callback function, the status handler, which the driver calls when it encounters conditions that should be reported to the higher layer software. More...
 
void XIicPs_MasterSend (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, u16 SlaveAddr)
 This function initiates an interrupt-driven send in master mode. More...
 
void XIicPs_MasterRecv (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, u16 SlaveAddr)
 This function initiates an interrupt-driven receive in master mode. More...
 
s32 XIicPs_MasterSendPolled (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, u16 SlaveAddr)
 This function initiates a polled mode send in master mode. More...
 
s32 XIicPs_MasterRecvPolled (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount, u16 SlaveAddr)
 This function initiates a polled mode receive in master mode. More...
 
void XIicPs_EnableSlaveMonitor (XIicPs *InstancePtr, u16 SlaveAddr)
 This function enables the slave monitor mode. More...
 
void XIicPs_DisableSlaveMonitor (XIicPs *InstancePtr)
 This function disables slave monitor mode. More...
 
void XIicPs_MasterInterruptHandler (XIicPs *InstancePtr)
 The interrupt handler for the master mode. More...
 
void XIicPs_SetupSlave (XIicPs *InstancePtr, u16 SlaveAddr)
 This function sets up the device to be a slave. More...
 
void XIicPs_SlaveSend (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount)
 This function setup a slave interrupt-driven send. More...
 
void XIicPs_SlaveRecv (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount)
 This function setup a slave interrupt-driven receive. More...
 
s32 XIicPs_SlaveSendPolled (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount)
 This function sends a buffer in polled mode as a slave. More...
 
s32 XIicPs_SlaveRecvPolled (XIicPs *InstancePtr, u8 *MsgPtr, s32 ByteCount)
 This function receives a buffer in polled mode as a slave. More...
 
void XIicPs_SlaveInterruptHandler (XIicPs *InstancePtr)
 The interrupt handler for slave mode. More...
 
s32 XIicPs_SelfTest (XIicPs *InstancePtr)
 Runs a self-test on the driver/device. More...
 
s32 XIicPs_SetOptions (XIicPs *InstancePtr, u32 Options)
 This function sets the options for the IIC device driver. More...
 
s32 XIicPs_ClearOptions (XIicPs *InstancePtr, u32 Options)
 This function clears the options for the IIC device driver. More...
 
u32 XIicPs_GetOptions (XIicPs *InstancePtr)
 This function gets the options for the IIC device. More...
 
s32 XIicPs_SetSClk (XIicPs *InstancePtr, u32 FsclHz)
 This function sets the serial clock rate for the IIC device. More...
 
u32 XIicPs_GetSClk (XIicPs *InstancePtr)
 This function gets the serial clock rate for the IIC device. More...