lkml.org 
[lkml]   [2019]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 22/70] iio: dac: mcp4725: add missing powerdown bits in store eeprom
    Date
    From: Jean-Francois Dagenais <jeff.dagenais@gmail.com>

    commit 06003531502d06bc89d32528f6ec96bf978790f9 upstream.

    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@gmail.com>
    Acked-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/iio/dac/mcp4725.c | 1 +
    1 file changed, 1 insertion(+)

    --- a/drivers/iio/dac/mcp4725.c
    +++ b/drivers/iio/dac/mcp4725.c
    @@ -98,6 +98,7 @@ static ssize_t mcp4725_store_eeprom(stru

    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;


    \
     
     \ /
      Last update: 2019-04-24 19:51    [W:3.948 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site