From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161033AbcBQKSD (ORCPT ); Wed, 17 Feb 2016 05:18:03 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:38689 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934025AbcBQKR5 (ORCPT ); Wed, 17 Feb 2016 05:17:57 -0500 Subject: Re: [PATCHv4 5/7] eeprom: at25: extend driver to plug into the NVMEM framework To: Andrew Lunn , GregKH References: <1455666097-9115-1-git-send-email-andrew@lunn.ch> <1455666097-9115-6-git-send-email-andrew@lunn.ch> Cc: maxime.ripard@free-electrons.com, wsa@the-dreams.de, broonie@kernel.org, vz@mleia.com, fd@ti.com, linux-kernel@vger.kernel.org, pantelis.antoniou@konsulko.com, bgolaszewski@baylibre.com From: Srinivas Kandagatla Message-ID: <56C448CF.4070208@linaro.org> Date: Wed, 17 Feb 2016 10:17:51 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <1455666097-9115-6-git-send-email-andrew@lunn.ch> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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; >