📄 mbxi2c.h
字号:
/* mbxI2c.h - I2C bus interface header for PPC 8xx *//* Copyright 1998 Wind River Systems, Inc. *//* Copyright 1997,1998 Motorola, Inc., All Rights Reserved *//*modification history--------------------01c,25mar98,map code cleanup01b,04dec97,rhk WRS code review cleanup.01a,17jun97,scb written by rb, integrated by scb.*//*This file contains I2C I/O related defines and structure templates.*/#ifndef __INCmbxI2ch#define __INCmbxI2ch#ifdef __cplusplusextern "C" {#endif/* I2C I/O control/status word definitions */#define I2C_IO_C_MASK (0xffff<<0) /* control portion mask */#define I2C_IO_S_MASK (0xffff<<16) /* status portion mask */#define I2C_IO_C_RDATA (1<<0) /* read data operation */#define I2C_IO_C_WDATA (1<<1) /* write data operation */#define I2C_IO_S_ERROR (1<<16) /* error of some type, see remaining bits */#define I2C_IO_S_R_OV (1<<17) /* receiver overrun */#define I2C_IO_S_R_BSY (1<<18) /* receiver busy */#define I2C_IO_S_T_NAK (1<<19) /* transmitter no acknowledge */#define I2C_IO_S_T_UN (1<<20) /* transmitter underrun */#define I2C_IO_S_T_CL (1<<21) /* transmitter collision */#define I2C_IO_S_T_TO (1<<22) /* transmitter timeout */#define I2C_IO_S_R_TO (1<<23) /* receiver timeout */#define I2C_IO_S_X_BUF (1<<28) /* transfer size exceeds internal buffer size */#define I2C_IO_S_X_CNT (1<<29) /* transfer size does not equal the expected */#define I2C_DRV_NBDS 1#define I2C_RXBL_MAX 16 /* maximum RX buffer length */#define I2C_TXBL_MAX 16 /* maximum TX buffer length */#define I2C_CLK_SPD 90000 /* I2C bus clock speed - 90khz */#define I2C_BUFSIZ \ ((I2C_DRV_NBDS * I2C_RXBL_MAX) + (I2C_DRV_NBDS * I2C_TXBL_MAX))#define I2C_INT_CLR 0xff /* clear interrupt status */#define I2C_INT_DSBL 0x0 /* disable all interrupts */#define I2C_IOCTL_W 0 /* write */#define I2C_IOCTL_R 1 /* read */#define I2C_IOCTL_O 2 /* read/or/write */#define I2C_IOCTL_A 3 /* read/and/write */#define I2C_IOCTL_AO 4 /* read/and/or/write *//* typedefs *//* I2C driver descriptor rings structure template */typedef struct i2c_drv_bd /* I2C_DRV_BD */ { SCC_BUF rxbd[I2C_DRV_NBDS]; /* receive */ SCC_BUF txbd[I2C_DRV_NBDS]; /* transmit */ } I2C_DRV_BD;/* i2c i/o command packet */typedef struct i2c_cmd_pkt { UINT csword; /* status/control word */ UINT devAdrs; /* device address */ UINT dataAdrs; /* data transfer address */ UINT dataSize; /* data transfer size */ UINT dataSizeActual; /* data transfer size (actual) */ } I2C_CMD_PKT;#ifdef __cplusplus}#endif#endif /* __INCmbxI2ch */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -