Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751560AbdFIKLW (ORCPT ); Fri, 9 Jun 2017 06:11:22 -0400 Received: from metis.ext.4.pengutronix.de ([92.198.50.35]:48713 "EHLO metis.ext.4.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751524AbdFIKLV (ORCPT ); Fri, 9 Jun 2017 06:11:21 -0400 Date: Fri, 9 Jun 2017 12:11:15 +0200 From: Oleksij Rempel To: Srinivas Kandagatla Cc: Oleksij Rempel , devicetree@vger.kernel.org, kernel@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Mark Rutland , Maxime Ripard , Rob Herring , Shawn Guo Subject: Re: [PATCH v4 2/3] nvmem: add snvs_lpgpr driver Message-ID: <20170609101115.umiaec2qdspkfag3@pengutronix.de> References: <20170608165134.14971-1-o.rempel@pengutronix.de> <20170608165134.14971-3-o.rempel@pengutronix.de> <6babaffa-d782-309b-67e4-14dacb72383d@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6babaffa-d782-309b-67e4-14dacb72383d@linaro.org> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 12:04:23 up 67 days, 2:48, 23 users, load average: 0.22, 0.17, 0.08 User-Agent: Mutt/1.6.2-neo (2016-06-11) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3185 Lines: 108 On Fri, Jun 09, 2017 at 10:35:15AM +0100, Srinivas Kandagatla wrote: > > Few more nit picks!! > > On 08/06/17 17:51, Oleksij Rempel wrote: > > This is a driver for Low Power General Purpose Register (LPGPR) > > available on i.MX6 SoCs in Secure Non-Volatile Storage (SNVS) > > of this chip. > > > > It is a 32-bit read/write register located in the low power domain. > > Since LPGPR is located in the battery-backed power domain, LPGPR can > > be used by any application for retaining data during an SoC power-down ..... > > --- a/drivers/nvmem/Kconfig > > +++ b/drivers/nvmem/Kconfig > > @@ -144,4 +144,14 @@ config MESON_EFUSE > > This driver can also be built as a module. If so, the module > > will be called nvmem_meson_efuse. > > +config NVMEM_SNVS_LPGPR > > + tristate "Support for Low Power General Purpose Register" > > + depends on SOC_IMX6 || COMPILE_TEST > > shouldn't you either "select MFD_SYSCON" or "depends on MFD_SYSCON" > here. according to Documentation/kbuild/kconfig-language.txt "In general use select only for non-visible symbols (no prompts anywhere) and for symbols with no dependencies." this is why I removed select. And SOC_IMX6 is already doing "select MFD_SYSCON", so I assume it should be enough to depend on it. Or do I miss some thing? > > + help > > + This is a driver for Low Power General Purpose Register (LPGPR) available on > > + i.MX6 SoCs in Secure Non-Volatile Storage (SNVS) of this chip. > > + > > + This driver can also be built as a module. If so, the module > > + will be called nvmem-snvs-lpgpr. > > + > > endif .... > > diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile > > index 173140658693..4c589184acee 100644 > > --- a/drivers/nvmem/Makefile > > +++ b/drivers/nvmem/Makefile > > + > > +struct snvs_lpgpr_priv { > > + struct device_d *dev; > > + struct regmap *regmap; > > + int offset; > > why do you need offset here, you already have access to cfg which has the > offset member. yes, you right. I'll update it. > > > + struct nvmem_config cfg; > > +}; > > + > > +struct snvs_lpgpr_cfg { > > + int offset; > > +}; > > + > > +static const struct snvs_lpgpr_cfg snvs_lpgpr_cfg_imx6q = { > > + .offset = 0x68, > > +}; > > + .... > > + > > + return 0; > > +} > > + > > +static int snvs_lpgpr_read(void *context, unsigned int offset, void *_val, > > + size_t bytes) > > +{ > > + > > +static struct platform_driver snvs_lpgpr_driver = { > > + .probe = snvs_lpgpr_probe, > > + .remove = snvs_lpgpr_remove, > > + .driver = { > > + .name = "snvs_lpgpr", > > + .of_match_table = snvs_lpgpr_dt_ids, > > + }, > > +}; > > +module_platform_driver(snvs_lpgpr_driver); > > + > > +MODULE_AUTHOR("Oleksij Rempel "); > > +MODULE_DESCRIPTION("Low Power General Purpose Register in i.MX6 Secure Non-Volatile Storage"); > > +MODULE_LICENSE("GPL v2"); > > > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |