[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