Function table
QNX SDP8.0Customizing a BSPConfigurationDeveloper
The i2c_master_funcs_t structure is a table of pointers to functions that you can provide for your hardware. The higher-level code calls these functions.
typedef struct {
size_t size; /* size of this structure */
int (*version_info)(i2c_libversion_t *version);
void *(*init)(int argc, char *argv[]);
void (*fini)(void *hdl);
i2c_status_t (*send)(void *hdl, void *buf, unsigned int len,
unsigned int stop);
i2c_status_t (*recv)(void *hdl, void *buf, unsigned int len,
unsigned int stop);
int (*abort)(void *hdl, int rcvid);
int (*set_slave_addr)(void *hdl, unsigned int addr, i2c_addrfmt_t fmt);
int (*set_bus_speed)(void *hdl, unsigned int speed, unsigned int *ospeed);
int (*driver_info)(void *hdl, i2c_driver_info_t *info);
int (*ctl)(void *hdl, int cmd, void *msg, int msglen,
int *nbytes, int *info);
int (*bus_reset) (void *hdl);
} i2c_master_funcs_t;
Note:
- In a multimaster system, the send and recv functions should handle bus arbitration.
- If the I2C interface supports DMA, you can implement it in the send and recv functions.
Page updated: