Re: [PATCH] i2c: rockchip: De-initialize the bus after start bit failure

2023-06-05 Thread Heiko Schocher
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

2023-05-29 Thread Heiko Schocher
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

2023-05-29 Thread Kever Yang



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

2023-05-25 Thread Ondřej Jirman
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