changing circuitry to disable RTC, update initialization to match
[fw/openalt] / i2c / i2c.h
1 #ifndef _I2C_H_
2 #define _I2C_H_
3
4 #include "sysdefs.h"
5
6 //
7 //  Does not define slave RX statuses.  Bus errors (I2C_STAT == 0) is remapped
8 //  to I2CERR_ERROR in i2cStatus() so that we can use a value of 0 to indicate 
9 //  no error.
10 //
11 typedef enum
12 {
13   I2CERR_NONE = 0,
14   I2CERR_BUSY,
15   I2CERR_EMPTY,
16   I2CERR_TIMEOUT,
17   I2CERR_TIMEOUTWC,
18   I2CERR_TIMEOUTACKPOLL,
19   I2CERR_NOTIMPLEMENTED,
20   I2CERR_OTHER,
21   I2CERR_BUSERROR,
22   I2CERR_BUSERRORx       = 0x00,
23   I2CERR_STARTTX         = 0x08,
24   I2CERR_REPEATEDSTARTTX = 0x10,
25   I2CERR_SLAWTX_ACKRX    = 0x18,
26   I2CERR_SLAWTX_NACKRX   = 0x20,
27   I2CERR_DATTX_ACKRX     = 0x28,
28   I2CERR_DATTX_NACKRX    = 0x30,
29   I2CERR_ARBLOST         = 0x38,
30   I2CERR_SLARTX_ACKRX    = 0x40,
31   I2CERR_SLARTX_NACKRX   = 0x48,
32   I2CERR_DATRX_ACKTX     = 0x50,
33   I2CERR_DATRX_NACKTX    = 0x58,
34   I2CERR_NOINFO          = 0xf8
35 }
36 i2cErr_e;
37
38 //
39 //
40 //
41 extern i2cErr_e i2cErrno;
42
43 //
44 //
45 //
46 void i2cInit (void);
47 int i2cGetErrno (void);
48 const char *i2cStrerror (int err);
49 void i2cSetTimeout (unsigned int timeoutInMilliseconds);
50 void i2cDump (void);
51 int i2cWriteBuffer (U8 address, U8 *buffer, U32 bufferLength);
52 int i2cReadBuffer (U8 address, U8 *buffer, U32 bufferLength);
53 int i2cWriteReadBuffer (U8 address, U8 *buffer, U32 putLength, U32 getLength);
54 int i2cWriteBufferPoll (U8 address, U8 *buffer, U32 bufferLength);
55 int i2cWriteReadBufferPoll (U8 address, U8 *buffer, U32 putLength, U32 getLength);
56
57
58 #endif