Re: [U-Boot] [PATCH v3 3/6] i2c: rcar_i2c: Fix sending of slave addresses

2019-03-06 Thread Heiko Schocher

Hello Ismael,

Am 06.03.2019 um 11:46 schrieb Ismael Luceno Cortes:

Do the reset before clearing the MSR, otherwise it may result in a read
or write operation instead if the start condition is repeated.

Signed-off-by: Ismael Luceno 
Reviewed-by: Marek Vasut 
---
  drivers/i2c/rcar_i2c.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)


Reviewed-by: Heiko Schocher 

bye,
Heiko
--
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: h...@denx.de
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v3 3/6] i2c: rcar_i2c: Fix sending of slave addresses

2019-03-06 Thread Marek Vasut
On 3/6/19 11:46 AM, Ismael Luceno Cortes wrote:
> Do the reset before clearing the MSR, otherwise it may result in a read
> or write operation instead if the start condition is repeated.
> 
> Signed-off-by: Ismael Luceno 
> Reviewed-by: Marek Vasut 


Reviewed-by: Marek Vasut 

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v3 3/6] i2c: rcar_i2c: Fix sending of slave addresses

2019-03-06 Thread Ismael Luceno Cortes
Do the reset before clearing the MSR, otherwise it may result in a read
or write operation instead if the start condition is repeated.

Signed-off-by: Ismael Luceno 
Reviewed-by: Marek Vasut 
---
 drivers/i2c/rcar_i2c.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c
index d7b27204cb..a88fbcf34f 100644
--- a/drivers/i2c/rcar_i2c.c
+++ b/drivers/i2c/rcar_i2c.c
@@ -134,9 +134,11 @@ static int rcar_i2c_set_addr(struct udevice *dev, u8 chip, 
u8 read)
}
 
writel((chip << 1) | read, priv->base + RCAR_I2C_ICMAR);
-   writel(0, priv->base + RCAR_I2C_ICMSR);
+   /* Reset */
writel(RCAR_I2C_ICMCR_MDBS | RCAR_I2C_ICMCR_MIE | RCAR_I2C_ICMCR_ESG,
   priv->base + RCAR_I2C_ICMCR);
+   /* Clear Status */
+   writel(0, priv->base + RCAR_I2C_ICMSR);
 
ret = wait_for_bit_le32(priv->base + RCAR_I2C_ICMSR, mask,
true, 100, true);
-- 
2.19.1
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot