Re: [PATCH] iio: dac: mcp4725: add missing powerdown bits in store eeprom

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 10 Mar 2019 12:31:16 +0100 (CET)
Peter Meerwald-Stadler <pmeerw@xxxxxxxxxx> wrote:

> > +Cc Peter.  
>  
> > > When issuing the write DAC register and write eeprom command, the two
> > > powerdown bits (PD0 and PD1) are assumed by the chip to be present in
> > > the bytes sent. Leaving them at 0 implies "powerdown disabled" which is
> > > a different state that the current one. By adding the current state of
> > > the powerdown in the i2c write, the chip will correctly power-on exactly
> > > like as it is at the moment of store_eeprom call.
> > > 
> > > This is documented in MCP4725's datasheet, FIGURE 6-2: "Write Commands
> > > for DAC Input Register and EEPROM" and MCP4726's datasheet, FIGURE 6-3:
> > > "Write All Memory Command".
> > > 
> > > Signed-off-by: Jean-Francois Dagenais <jeff.dagenais@xxxxxxxxx>  
> 
> > sounds fine to me, but I'd like to give Peter a chance to comment.
> > Give me a poke if it turns out Peter is busy and doesn't get back
> > to us in a week or two.  
> 
> I'd suggest whitespace around the + operator, otherwise
> 
Good point, added...
> Acked-by: Peter Meerwald-Stadler <pmeerw@xxxxxxxxxx>

Applied to the fixes-togreg branch of iio.git and marked
for stable. It's not super critical as fixes go but
things are currently not quite doing what someone might
expect.

Thanks,

Jonathan

> 
> > > ---
> > >  drivers/iio/dac/mcp4725.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/drivers/iio/dac/mcp4725.c b/drivers/iio/dac/mcp4725.c
> > > index 6ab1f23e5a79..97bb350d1e77 100644
> > > --- a/drivers/iio/dac/mcp4725.c
> > > +++ b/drivers/iio/dac/mcp4725.c
> > > @@ -98,6 +98,7 @@ static ssize_t mcp4725_store_eeprom(struct device *dev,
> > >  
> > >  	inoutbuf[0] = 0x60; /* write EEPROM */
> > >  	inoutbuf[0] |= data->ref_mode << 3;
> > > +	inoutbuf[0] |= data->powerdown ? ((data->powerdown_mode+1) << 1) : 0;
> > >  	inoutbuf[1] = data->dac_value >> 4;
> > >  	inoutbuf[2] = (data->dac_value & 0xf) << 4;
> > >    
> >   
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux