Changeset 05015dc1 in rtems


Ignore:
Timestamp:
01/23/18 02:23:55 (5 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
5, master
Children:
5f0a6376
Parents:
4cf93658
git-author:
Chris Johns <chrisj@…> (01/23/18 02:23:55)
git-committer:
Chris Johns <chrisj@…> (02/01/18 03:59:55)
Message:

Xilinx AXI I2C driver IP race condition causes clock glitch.

Setting the PIRQ to 0 before reading the data produces a short clock pulse.
Moving the write to after reading the data fixes the issue.

Close #3173

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/dev/i2c/xilinx-axi-i2c.c

    r4cf93658 r05015dc1  
    513513        xilinx_axi_i2c_disable_clear_irq(bus, INT_TX_ERROR);
    514514        xilinx_axi_i2c_set_cr(bus, CR_TXAK);
     515        xilinx_axi_i2c_read_rx_bytes(bus, level);
     516        /*
     517         * Set the RX PIRQ to 0 after the RX data has been read. There is an
     518         * observed timing issue and glitch if written before.
     519         */
    515520        xilinx_axi_i2c_write_rx_pirq(bus, 0);
    516         xilinx_axi_i2c_read_rx_bytes(bus, level);
    517521        break;
    518522
Note: See TracChangeset for help on using the changeset viewer.