Hello TI,
It seems that the I2C register map as described in the datasheet (SPRS680A–OCTOBER 2010–REVISED MARCH 2011) and also TRM do not match with the one defined in Spectrum digital I2C library for their EVM (evaluation board for davinci 816x).
Below is an extract from their evm816x.h include file, and it is completely different from the one as described in the documentation.
So we would like to know which is the good register map : the one in the documentation or in the example ?
Thanks by advance,
jar
/* ------------------------------------------------------------------------ *
* I2C0 Controller *
* ------------------------------------------------------------------------ */
#define I2C0_BASE 0x48028080
#define I2C0_REV *( volatile Uint32* )( I2C0_BASE + 0x00 )
#define I2C0_IE *( volatile Uint32* )( I2C0_BASE + 0x04 )
#define I2C0_STAT *( volatile Uint32* )( I2C0_BASE + 0x08 )
#define I2C0_WE *( volatile Uint32* )( I2C0_BASE + 0x0C )
#define I2C0_SYSS *( volatile Uint32* )( I2C0_BASE + 0x10 )
#define I2C0_BUF *( volatile Uint32* )( I2C0_BASE + 0x14 )
#define I2C0_CNT *( volatile Uint32* )( I2C0_BASE + 0x18 )
#define I2C0_DATA *( volatile Uint32* )( I2C0_BASE + 0x1C )
#define I2C0_SYSC *( volatile Uint32* )( I2C0_BASE + 0x20 )
#define I2C0_CON *( volatile Uint32* )( I2C0_BASE + 0x24 )
#define I2C0_OA *( volatile Uint32* )( I2C0_BASE + 0x28 )
#define I2C0_SA *( volatile Uint32* )( I2C0_BASE + 0x2C )
#define I2C0_PSC *( volatile Uint32* )( I2C0_BASE + 0x30 )
#define I2C0_SCLL *( volatile Uint32* )( I2C0_BASE + 0x34 )
#define I2C0_SCLH *( volatile Uint32* )( I2C0_BASE + 0x38 )
#define I2C0_SYSTEST *( volatile Uint32* )( I2C0_BASE + 0x3C )