1 Reply Latest reply on Jul 26, 2015 8:15 PM by allene

    Strange I2C behavior

    jamesbvaughan

      I seem to have really messed up I2C bus 6 on my Edison. After using it with a gyroscope sensor, it now seems to be completely unusable. When I try to write to or read from any devices on it, and when I run "i2cdetect -y -r 6", I get this:

       

      [  582.609689] i2c-designware-pci 0000:00:09.1: ===== REGISTER DUMP (i2c) =====

      [  582.609786] i2c-designware-pci 0000:00:09.1: DW_IC_CON:                          0x65

      [  582.609865] i2c-designware-pci 0000:00:09.1: DW_IC_TAR:                           0x53

      [  582.609941] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_HCNT:           0x2f8

      [  582.610017] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_LCNT:           0x37b

      [  582.610093] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_HCNT:           0x87

      [  582.610168] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_LCNT:           0x10a

      [  582.610244] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_STAT:                 0x0

      [  582.610319] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_MASK:               0x246

      [  582.610395] i2c-designware-pci 0000:00:09.1: DW_IC_RAW_INTR_STAT:       0x10

      [  582.610470] i2c-designware-pci 0000:00:09.1: DW_IC_RX_TL:                        0x20

      [  582.610545] i2c-designware-pci 0000:00:09.1: DW_IC_TX_TL:                        0x20

      [  582.610621] i2c-designware-pci 0000:00:09.1: DW_IC_ENABLE:                     0x1

      [  582.610695] i2c-designware-pci 0000:00:09.1: DW_IC_STATUS:                      0x2

      [  582.610769] i2c-designware-pci 0000:00:09.1: DW_IC_TXFLR:                        0x2

      [  582.610843] i2c-designware-pci 0000:00:09.1: DW_IC_RXFLR:                        0x0

      [  582.610917] i2c-designware-pci 0000:00:09.1: DW_IC_TX_ABRT_SOURCE:     0x0

      [  582.610992] i2c-designware-pci 0000:00:09.1: DW_IC_DATA_CMD:                 0x0

      [  582.611065] i2c-designware-pci 0000:00:09.1: ===============================

      [  582.611173] CPU: 1 PID: 350 Comm: moth Tainted: G        W  O 3.10.17-poky-edison+ #1

      [  582.611178] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

      [  582.611185] task: f50da6f0 ti: f5d74000 task.ti: f5d74000

      [  582.611247] Stack:

      [  582.611317] Call Trace:

      [  582.611781] Code: 10 b3 ff ff 89 f8 09 d0 80 ce 04 83 ff 02 0f 45 d0 a1 94 72 bd c1 89 90 00 b3 ff ff f7 c6 00 02 00 00 74 15 e8 20 58 0b 00 56 9d <83> c4 04 5b 5e 5f 5d c3 8d b6 00 00 00 00 56 9d e8 39 5b 0b 00

      [  582.611806] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W  O 3.10.17-poky-edison+ #1

      [  582.611811] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

      [  582.611819] task: c1bce1c0 ti: c1bc8000 task.ti: c1bc8000

      [  582.611882] Stack:

      [  582.611950] Call Trace:

      [  582.612184] Code: 50 08 83 e2 08 75 39 31 d2 83 c0 08 89 d1 0f 01 c8 0f ae f0 89 f6 89 e0 25 00 e0 ff ff 8b 40 08 a8 08 75 07 b1 01 89 f0 0f 01 c9 <85> 1d 78 60 c1 c1 75 0d 8d 55 f0 b8 05 00 00 00 e8 47 1a d7 ff

      [  582.680474] i2c-6: recovery ignore

       

      That shows up regardless of what devices are attached to the I2C 6 bus, and even when nothing at all is connected to it. The behavior of I2C 1 just makes it even more confusing to me. On I2C 1, everything works perfectly, except for the gyroscope sensor; when I try to write to or read from it, I get that same error, but the bus continues to work just fine with other devices.

       

      Does anyone have an explanation for this or advice on how to fix it?