123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #ifndef _i2c_h
- #define _i2c_h
- #include <asm/types.h>
- /* copy from sis516/sisi2c.h */
- typedef enum
- {
- ADDRESS_TYPE_BYTE,
- ADDRESS_TYPE_WORD,
- ADDRESS_TYPE_NONE,
- ADDRESS_TYPE_MULTIPLE,
- ADDRESS_TYPE_INVALID
- }ADDRESS_TYPE,*PADDRESS_TYPE;
- #define I2C_SPEED_100K 0x30
- #define I2C_SPEED_400K 0x0b
- typedef enum
- {
- I2C_STATUS_SUCCESS,
- I2C_STATUS_DEVICE_ID_ERROR,
- I2C_STATUS_DATA_ERROR,
- I2C_STATUS_SYSTEM_ERROR,
- I2C_STATUS_HARDWARE_CRASH
- }I2C_STATUS,*PI2C_STATUS;
- /* i2c misc */
- #if 0
- #define ___swab16(x) \
- ({ \
- WORD __x = (x); \
- ((WORD)( \
- (((WORD)(__x) & (WORD)0x00ff) << 8) | \
- (((WORD)(__x) & (WORD)0xff00) >> 8) )); \
- })
- #define ___swab32(x) \
- ({ \
- DWORD __x = (x); \
- ((DWORD)( \
- (((DWORD)(__x) & (DWORD)0x000000ff) << 24) | \
- (((DWORD)(__x) & (DWORD)0x0000ff00) << 8) | \
- (((DWORD)(__x) & (DWORD)0x00ff0000) >> 8) | \
- (((DWORD)(__x) & (DWORD)0xff000000) >> 24) )); \
- })
- #else
- #define ___swab16(x) (((x&0xff)<<8)|((x&0xff00)>>8))
- #define ___swab32(x) (((x&0xff)<<24)|((x&0xff00)<<8)|((x&0xff0000)>>8)|((x&0xff000000)>>24))
- #endif
- void I2CWriteFun(u8 MasterIndex,u8 Device_ID,u8 addrtype,u32 Address,u8 *pData,u16 Length,u8 Speed,u8 *pStatus);
- void I2CReadFun(u8 MasterIndex, u8 Device_ID, u8 addrtype, u32 Address, u8 *pData, u16 Length, u8 Speed, u8 *pStatus);
- void HWI2CInit(u8 MasterIndex);
- #endif //_i2c_h
|