[U-Boot] A question about unconfigured pads check in omap24xx_i2c
Lubomir Popov
lpopov at mm-sol.com
Wed Nov 6 14:19:34 CET 2013
On 06-Nov-13 14:12, Nikita Kiryanov wrote:
> In drivers/i2c/omap24xx_i2c.c there are a few checks that attempt to
> detect unconfigured pads for the i2c bus in use. These checks are
> all in the form of
>
> if (status == I2C_STAT_XRDY) {
> printf("unconfigured pads\n");
> return -1;
> }
>
> This check seems peculiar to me since the meaning of I2C_STAT_XRDY is
> that new data is requested for transmission. Why is that indication that
> the bus is not padconf'd for I2C?
Hi Nikita,
This has been empirically confirmed on OMAP4 and OMAP5. When the pads
are not
configured, the I2C controller is actually disconnected from the bus.
The clock
input for its state machine has to come from the bus however due to
stretching
etc., although it is internally generated. So actually nothing changes
within
the controller after a transaction attempt is made, and it keeps its initial
state with XRDY set only (ready to accept transmit data). I use this as an
indicator. Not perfect, but works in most cases.
Regards,
Lubo
More information about the U-Boot
mailing list