On Thu, Sep 29, 2016 at 04:04:59PM +0300, Jarkko Nikula wrote: > I2C DesignWare may abort transfer with arbitration lost if I2C slave pulls > SDA down quickly after falling edge of SCL. Reason for this is unknown but > after trial and error it was found this can be avoided by enabling non-zero > SDA RX hold time for the receiver. > > By the specification SDA RX hold time extends incoming SDA low to high > transition by n * ic_clk cycles but only when SCL is high. However it > seems to help avoid above faulty arbitration lost error. > > Bits 23:16 in IC_SDA_HOLD register define the SDA RX hold time for the > receiver. Be conservative and enable 1 ic_clk cycle long hold time in > case boot firmware hasn't set it up. > > Reported-by: Jukka Laitinen <jukka.laitinen@xxxxxxxxx> > Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> Applied to for-current, thanks!
Attachment:
signature.asc
Description: PGP signature