This patch set provides improvements to the i2c-ocore driver. [V5 -> V6] - remove redundant code introduced in V5 (double read control register) [V4 -> V5] - deterministic status of IEN bit in register "CONTROL" at the end of ocores_init() - more style fixes [V3 -> V4] - add reviews-by/tested-by - add comment to justify the formula in udelay((8 * 1000) / i2c->bus_clock_khz); [V2 -> V3] - fix particular error condition on platform_get_irq(). Copied from https://patchwork.ozlabs.org/patch/1038409/ [V1 -> V2] - replaced usleep_range() with udelay() so that the polling version can be used in atomic context. - added dedicated patch for minor style issues - fixed delay computation - use spin_lock_irqsave(), instead of spin_trylock_irqsave(). IACK is always necessary and a trylock would generate an extra interrupt for nothing - make the driver ready for an eventual master_xfer_irqless()