> On 10/02/2020 5:44 PM Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > > + if (sr & (ICSR_AL | ICSR_TACK | > > + ICSR_WAIT | ICSR_DTE)) { > > + sh_mobile_i2c_isr(0, pd); > > + udelay(150); > > + } else { > > And where does the value 150us come from? Anything more than (IIRC) 50us or so works, but I tried to be conservative. Not waiting at all does not work, though. It is not quite clear to me why, because the bits tested here are the conditions for an interrupt to be triggered. CU Uli