a delay on the startup of the i2c imx controller is not required or defined in the specs. By removing it, the user can see a latency decrease from up to 150μs in communication. Additional info: https://lore.kernel.org/all/20220304132037.GA15901@xxxxxxxxxxxxxx/ Signed-off-by: Ian S. Dannapel <iansdannapel@xxxxxxxxx> --- drivers/i2c/busses/i2c-imx.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index 3576b63a6c03..019dda5301df 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c @@ -602,12 +602,6 @@ static int i2c_imx_start(struct imx_i2c_struct *i2c_imx, bool atomic) imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); imx_i2c_write_reg(i2c_imx->hwdata->i2cr_ien_opcode, i2c_imx, IMX_I2C_I2CR); - /* Wait controller to be stable */ - if (atomic) - udelay(50); - else - usleep_range(50, 150); - /* Start I2C transaction */ temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); temp |= I2CR_MSTA; -- 2.25.1