[RFC] commands: i2c_write: enable raw write to address

Antony Pavlov antonynpavlov at gmail.com
Tue Feb 13 22:19:06 PST 2018


On Tue, 13 Feb 2018 09:19:43 +0100
Sascha Hauer <s.hauer at pengutronix.de> wrote:

> On Fri, Feb 09, 2018 at 02:22:24PM +0300, Antony Pavlov wrote:
> > On Fri, 9 Feb 2018 09:36:36 +0100
> > Sascha Hauer <s.hauer at pengutronix.de> wrote:
> > 
> > > Hi Antony,
> > > 
> > > On Thu, Feb 08, 2018 at 10:48:56AM +0300, Antony Pavlov wrote:
> > > > Sometimes for communication with a simple I2C devices
> > > > (e.g. PCF8574 or TM1650) it's necessary to send only
> > > > one data byte into the I2C device.
> > > > Current i2c_write command makes this impossible because
> > > > you can't just pass 'device address' and 'register number'
> > > > (or 'device address' and 'one data byte') to the command.
> > > > You always have to pass all three parameters:
> > > > 'device address', 'register number' and 'data'.
> > > > 
> > > > This commit fixes the problem.
> > > > 
> > > > Sample usage:
> > > > 
> > > >   barebox at barebox sandbox:/ i2c_write -a 0x24 0x01
> > > > 
> > > > Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
> > > > ---
> > > >  commands/i2c.c | 8 ++++++--
> > > >  1 file changed, 6 insertions(+), 2 deletions(-)
> > > 
> > > Looks good to me.
> > > 
> > > I applied this one despite the [RFC] tag. If for some reason you want to
> > > resend this, feel free to do so, but otherwise consider this applied.
> > 
> > Thanks!
> > 
> > The patch is short, it's understandable and it fixes the problem.
> > I prefere to apply this patch as is.
> > 
> > I see some inconsistency in drivers/i2c/i2c.c.
> > We have i2c_master_send() and i2c_write_reg() functions.
> > These functions are intended to make similar work but they are
> > written in very different style. I suppose that we can rewrite
> > i2c_master_send() (e.g. drop FIXME) and make i2c_write_reg()
> > work on top of i2c_master_send(). Any comments?
> 
> Rewrite i2c_master_send()? Do you mean rewrite i2c_write_reg() instead?

You are right, of course I propose rewrite i2c_write_reg() (there is no
FIXME comment inside i2c_master_send()).

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list