Re: [PATCH] i2c: rockchip: De-initialize the bus after start bit failure
Hello Ondrej, On 25.05.23 14:18, Ondřej Jirman wrote: > From: Ondrej Jirman > > Failure can happen when i2c is used without initializing pinctrl properly, > which U-Boot happily allows in SPL. Without this fix, further I2C access would > fail, even after proper pinctrl initialization. > > Signed-off-by: Ondrej Jirman > Cc: Heiko Schocher > --- > drivers/i2c/rk_i2c.c | 7 --- > 1 file changed, 4 insertions(+), 3 deletions(-) Applied to u-boot-i2c.git master Thanks! bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Erika Unter HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: h...@denx.de
Re: [PATCH] i2c: rockchip: De-initialize the bus after start bit failure
Hello Jirman, On 25.05.23 14:18, Ondřej Jirman wrote: > From: Ondrej Jirman > > Failure can happen when i2c is used without initializing pinctrl properly, > which U-Boot happily allows in SPL. Without this fix, further I2C access would > fail, even after proper pinctrl initialization. > > Signed-off-by: Ondrej Jirman > Cc: Heiko Schocher > --- > drivers/i2c/rk_i2c.c | 7 --- > 1 file changed, 4 insertions(+), 3 deletions(-) Reviewed-by: Heiko Schocher @kever: Patch is delegated to you on patchwork, for me it is fine, if you pick it up. If you do not plan to pick it up, please delegate it to me. Thanks! bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Erika Unter HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: h...@denx.de
Re: [PATCH] i2c: rockchip: De-initialize the bus after start bit failure
On 2023/5/25 20:18, Ondřej Jirman wrote: From: Ondrej Jirman Failure can happen when i2c is used without initializing pinctrl properly, which U-Boot happily allows in SPL. Without this fix, further I2C access would fail, even after proper pinctrl initialization. Signed-off-by: Ondrej Jirman Cc: Heiko Schocher Reviewed-by: Kever Yang Thanks, - Kever --- drivers/i2c/rk_i2c.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/rk_i2c.c b/drivers/i2c/rk_i2c.c index f8fac45b6ca0..9927af94a80b 100644 --- a/drivers/i2c/rk_i2c.c +++ b/drivers/i2c/rk_i2c.c @@ -342,7 +342,7 @@ static int rockchip_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, int nmsgs) { struct rk_i2c *i2c = dev_get_priv(bus); - int ret; + int ret = 0; debug("i2c_xfer: %d messages\n", nmsgs); for (; nmsgs > 0; nmsgs--, msg++) { @@ -356,14 +356,15 @@ static int rockchip_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, } if (ret) { debug("i2c_write: error sending\n"); - return -EREMOTEIO; + ret = -EREMOTEIO; + break; } } rk_i2c_send_stop_bit(i2c); rk_i2c_disable(i2c); - return 0; + return ret; } int rockchip_i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
[PATCH] i2c: rockchip: De-initialize the bus after start bit failure
From: Ondrej Jirman Failure can happen when i2c is used without initializing pinctrl properly, which U-Boot happily allows in SPL. Without this fix, further I2C access would fail, even after proper pinctrl initialization. Signed-off-by: Ondrej Jirman Cc: Heiko Schocher --- drivers/i2c/rk_i2c.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/rk_i2c.c b/drivers/i2c/rk_i2c.c index f8fac45b6ca0..9927af94a80b 100644 --- a/drivers/i2c/rk_i2c.c +++ b/drivers/i2c/rk_i2c.c @@ -342,7 +342,7 @@ static int rockchip_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, int nmsgs) { struct rk_i2c *i2c = dev_get_priv(bus); - int ret; + int ret = 0; debug("i2c_xfer: %d messages\n", nmsgs); for (; nmsgs > 0; nmsgs--, msg++) { @@ -356,14 +356,15 @@ static int rockchip_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, } if (ret) { debug("i2c_write: error sending\n"); - return -EREMOTEIO; + ret = -EREMOTEIO; + break; } } rk_i2c_send_stop_bit(i2c); rk_i2c_disable(i2c); - return 0; + return ret; } int rockchip_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) -- 2.40.1