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

Han, Nandor (GE Healthcare) nandor.han at ge.com
Tue Oct 31 12:46:10 UTC 2017



> -----Original Message-----
> From: Heiko Schocher [mailto:hs at denx.de]
> Sent: 31 October 2017 06:28
> To: Martyn Welch <martyn at welchs.me.uk>
> Cc: u-boot at lists.denx.de; Han, Nandor (GE Healthcare)
> <nandor.han at ge.com>; Martyn Welch <martyn.welch at collabora.co.uk>;
> Stefano Babic <sbabic at denx.de>
> Subject: EXT: Re: [PATCH 1/7] imx: mxc_i2c: tweak the i2c transfer method
> 
> 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) {"

In normal cases yes. It looks that i2c framework doesn't support requesting data from i2c without addressing the slave. 
In this case -1 is used to specify that address is not needed.

> 
> 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