lkml.org 
[lkml]   [2016]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCHv4 5/7] eeprom: at25: extend driver to plug into the NVMEM framework
    From
    Date


    On 16/02/16 23:41, Andrew Lunn wrote:
    > Add a regmap for accessing the EEPROM, and then use that with the
    > NVMEM framework. Enable backwards compatibility in the NVMEM config,
    > so that the 'eeprom' file in sys is provided by the framework.
    >
    > Signed-off-by: Andrew Lunn <andrew@lunn.ch>

    Minor Nit, once fixed feel free to add my Ack.


    > ---
    > drivers/misc/eeprom/Kconfig | 2 +
    > drivers/misc/eeprom/at25.c | 124 ++++++++++++++++++++++++--------------------
    > 2 files changed, 71 insertions(+), 55 deletions(-)

    ...

    >
    > static int at25_fw_to_chip(struct device *dev, struct spi_eeprom *chip)
    > @@ -337,6 +349,7 @@ static int at25_probe(struct spi_device *spi)
    > {
    > struct at25_data *at25 = NULL;
    > struct spi_eeprom chip;
    > + struct regmap *regmap;
    > int err;
    > int sr;
    > int addrlen;
    > @@ -381,35 +394,35 @@ static int at25_probe(struct spi_device *spi)
    > spi_set_drvdata(spi, at25);
    > at25->addrlen = addrlen;
    >
    > - /* Export the EEPROM bytes through sysfs, since that's convenient.
    > - * And maybe to other kernel code; it might hold a board's Ethernet
    > - * address, or board-specific calibration data generated on the
    > - * manufacturing floor.
    > - *
    > - * Default to root-only access to the data; EEPROMs often hold data
    > - * that's sensitive for read and/or write, like ethernet addresses,
    > - * security codes, board-specific manufacturing calibrations, etc.
    > - */
    > - sysfs_bin_attr_init(&at25->bin);
    > - at25->bin.attr.name = "eeprom";
    > - at25->bin.attr.mode = S_IRUSR;
    > - at25->bin.read = at25_bin_read;
    > -
    > - at25->bin.size = at25->chip.byte_len;


    > - if (!(chip.flags & EE_READONLY)) {
    > - at25->bin.write = at25_bin_write;
    > - at25->bin.attr.mode |= S_IWUSR;
    > - }

    Above check is totally unused, probably remove it.

    > + at25->regmap_config.reg_bits = 32;
    > + at25->regmap_config.val_bits = 8;
    > + at25->regmap_config.reg_stride = 1;
    > + at25->regmap_config.max_register = chip.byte_len - 1;
    >


    \
     
     \ /
      Last update: 2016-02-17 11:41    [W:3.353 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site