[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56C448CF.4070208@linaro.org>
Date: Wed, 17 Feb 2016 10:17:51 +0000
From: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
To: Andrew Lunn <andrew@...n.ch>, GregKH <greg@...ah.com>
Cc: maxime.ripard@...e-electrons.com, wsa@...-dreams.de,
broonie@...nel.org, vz@...ia.com, fd@...com,
linux-kernel@...r.kernel.org, pantelis.antoniou@...sulko.com,
bgolaszewski@...libre.com
Subject: Re: [PATCHv4 5/7] eeprom: at25: extend driver to plug into the NVMEM
framework
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@...n.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;
>
Powered by blists - more mailing lists