I am trying to develop my own I2C driver for OMAP3503 platform.
I am using BeagleBoard rev. C with Lauterbach debugger.
Problem is that, once I enable the I2Ci (i=1,2,3) iclk and fclk, I find the corresponding SYSS_RDONE bit reset (within I2C_SYSS reg). This tells I2C peripheral reset is ongoing.
Following TRM recommandations for I2Ci reset (ch18, 3.1.3.1) I do the following in my I2C_Init(...) routine:
1. Ensure that the module is disabled (clear the I2Ci.I2C_CON[15] I2C_EN bit to 0).
2. Set the I2Ci.I2C_SYSC[1] SRST bit to 1.
3. Enable the module by setting I2Ci.I2C_CON[15] I2C_EN bit to 1.
4. Check the I2Ci.I2C_SYSS[0] RDONE bit until it is set to 1 to indicate the software reset is complete.
Nothing to do...RDONE is still reset and my code is stuck at step 4...
I am doing 16 bit access to I2C regs.
Any suggestion/comment?
Thank you very much.
S