This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Beagleboard xm i2c-2 not work on TI-Android-GingerBread-2.3.4-DevKit-2.1 release?

Hi,

I tried to communicate with my customerized i2c device on my beagleboard xm i2c-2 bus, but I was always getting NACK error. And here are some registers dumped:

omap_i2c omap_i2c.1:  fa070000: 00400040 001f001f 00000000 636f636f
omap_i2c omap_i2c.1:  fa070010: 00010001 00000000 00020002 00030003
omap_i2c omap_i2c.1:  fa070020: 02150215 92009200 00000000 004b004b
omap_i2c omap_i2c.1:  fa070030: 00010001 11191119 070b070b 01e001e0
omap_i2c omap_i2c.1:  fa070040: 00020002 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa070050: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa070060: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa070070: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa070080: 00400040 001f001f 00800080 636f636f
omap_i2c omap_i2c.1:  fa070090: 00010001 00000000 00020002 00030003
omap_i2c omap_i2c.1:  fa0700a0: 02150215 92009200 00000000 004b004b
omap_i2c omap_i2c.1:  fa0700b0: 00010001 11191119 070b070b 01e001e0
omap_i2c omap_i2c.1:  fa0700c0: 00020002 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa0700d0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa0700e0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.1:  fa0700f0: 00000000 00000000 00000000 00000000
omap_device: omap_i2c.2: new worst case activate latency 0: 30517
omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz
omap_i2c omap_i2c.2:  fa072000: 00400040 001f001f 00000000 00000000
omap_i2c omap_i2c.2:  fa072010: 00010001 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa072020: 02150215 80008000 00000000 03ff03ff
omap_i2c omap_i2c.2:  fa072030: 00010001 000d000d 000f000f 01e001e0
omap_i2c omap_i2c.2:  fa072040: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa072050: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa072060: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa072070: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa072080: 00400040 001f001f 00800080 00000000
omap_i2c omap_i2c.2:  fa072090: 00010001 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa0720a0: 02150215 80008000 00000000 03ff03ff
omap_i2c omap_i2c.2:  fa0720b0: 00010001 000d000d 000f000f 01e001e0
omap_i2c omap_i2c.2:  fa0720c0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa0720d0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa0720e0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.2:  fa0720f0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz
omap_i2c omap_i2c.3:  fa060000: 00400040 001f001f 00000000 00000000
omap_i2c omap_i2c.3:  fa060010: 00010001 00000000 00000000 00830083
omap_i2c omap_i2c.3:  fa060020: 02150215 80008000 00000000 03ff03ff
omap_i2c omap_i2c.3:  fa060030: 00010001 000d000d 000f000f 01e001e0
omap_i2c omap_i2c.3:  fa060040: c000c000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa060050: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa060060: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa060070: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa060080: 00400040 001f001f 00800080 00000000
omap_i2c omap_i2c.3:  fa060090: 00010001 00000000 00000000 00830083
omap_i2c omap_i2c.3:  fa0600a0: 02150215 80008000 00000000 03ff03ff
omap_i2c omap_i2c.3:  fa0600b0: 00010001 000d000d 000f000f 01e001e0
omap_i2c omap_i2c.3:  fa0600c0: c000c000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa0600d0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa0600e0: 00000000 00000000 00000000 00000000
omap_i2c omap_i2c.3:  fa0600f0: 00000000 00000000 00000000 00000000
omap_device: omap_i2c.3: new worst case deactivate latency 0: 30517

Take a look into it and apparently the PSC settings of i2c-2 and i2c-3 are wrong. Could anyone tell me if there is any bugs inside current i2c-omap driver? Or if there is any patches/workaround for this issue?

Thanks in advance

  • Finally I found that the PSC settings are immediately changed to 0001 after software driver write OMAP-I2C-CON-REG to take i2c module out of reset.

    omap_i2c omap_i2c.2:  fa072000: 00400040 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072010: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072020: 02150215 00000000 00000000 03ff03ff
    omap_i2c omap_i2c.2:  fa072030: 00170017 000d000d 000f000f 01e001e0
    omap_i2c omap_i2c.2:  fa072040: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072050: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072060: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072070: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072080: 00400040 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072090: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720a0: 02150215 00000000 00000000 03ff03ff
    omap_i2c omap_i2c.2:  fa0720b0: 00170017 000d000d 000f000f 01e001e0
    omap_i2c omap_i2c.2:  fa0720c0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720d0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720e0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720f0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz
    omap_i2c omap_i2c.2:  fa072000: 00400040 001f001f 00000000 00000000
    omap_i2c omap_i2c.2:  fa072010: 00010001 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072020: 02150215 80008000 00000000 03ff03ff
    omap_i2c omap_i2c.2:  fa072030: 00010001 000d000d 000f000f 01e001e0
    omap_i2c omap_i2c.2:  fa072040: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072050: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072060: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072070: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa072080: 00400040 001f001f 00800080 00000000
    omap_i2c omap_i2c.2:  fa072090: 00010001 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720a0: 02150215 80008000 00000000 03ff03ff
    omap_i2c omap_i2c.2:  fa0720b0: 00010001 000d000d 000f000f 01e001e0
    omap_i2c omap_i2c.2:  fa0720c0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720d0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720e0: 00000000 00000000 00000000 00000000
    omap_i2c omap_i2c.2:  fa0720f0: 00000000 00000000 00000000 00000000

    Is there any issue related with precedure of 'HS I2C Configure the Module Before Enabling the I2C Controller'?

     

  • root cause figured out today.

    i2c-2 works just fine and we made a mistake that probing our device on a wrong bus number!

    sorry for inconvenice. :(