[U-Boot] [PATCH 1/7] imx: mxc_i2c: tweak the i2c transfer method

Heiko Schocher hs at denx.de
Tue Oct 31 04:27:31 UTC 2017


Hello Martyn,

Am 26.10.2017 um 16:47 schrieb Martyn Welch:
> From: Nandor Han <nandor.han at ge.com>
> 
> Tweak the i2c transfer to work for devices that want to read data
> without addressing a register.
> 
> Signed-off-by: Nandor Han <nandor.han at ge.com>
> Signed-off-by: Martyn Welch <martyn.welch at collabora.co.uk>
> Cc: Heiko Schocher <hs at denx.de>
> Cc: Stefano Babic <sbabic at denx.de>
> Signed-off-by: Martyn Welch <martyn at welchs.me.uk>
> ---
>   drivers/i2c/mxc_i2c.c | 25 +++++++++++++++----------
>   1 file changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c
> index abf1da2..01f268b 100644
> --- a/drivers/i2c/mxc_i2c.c
> +++ b/drivers/i2c/mxc_i2c.c
> @@ -317,16 +317,19 @@ static int i2c_init_transfer_(struct mxc_i2c_bus *i2c_bus, u8 chip,
>   	temp |= I2CR_MTX | I2CR_TX_NO_AK;
>   	writeb(temp, base + (I2CR << reg_shift));
>   
> -	/* write slave address */
> -	ret = tx_byte(i2c_bus, chip << 1);
> -	if (ret < 0)
> -		return ret;
> -
> -	while (alen--) {
> -		ret = tx_byte(i2c_bus, (addr >> (alen * 8)) & 0xff);
> +	if (alen != -1)	{

I prefer here a "if (alen >= 0) {"

Thanks!

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: hs at denx.de


More information about the U-Boot mailing list