When clearing the ICE bit, all registers fall back to their defaut value. That allows for some simplifications in the code. Tested on a Renesas Lager board (R-Car H2) doing a bunch of consecutive commands. No spurious interrupts have been observed and the signals look exactly the same when visualized with sigrok. According to the docs, the ICE bit behaviour is the same since the beginning of this driver (sh7722) for the migo-r board. jacopo: can you please test this series while you work on migo-r anyhow? Thank you a ton for that! Looking forward to other comments, as well... Wolfram Sang (5): i2c: sh_mobile: remove redundant initialization i2c: sh_mobile: remove redundant deinitialization i2c: sh_mobile: manually "inline" two short functions i2c: sh_mobile: use direct writes when accessing ICE bit i2c: sh_mobile: shorten exit of xfer routine drivers/i2c/busses/i2c-sh_mobile.c | 50 +++++++++----------------------------- 1 file changed, 12 insertions(+), 38 deletions(-) -- 2.11.0