linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/25] nvmem: patches for v4.17
@ 2018-03-09 14:46 srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 01/25] nvmem: Document struct nvmem_config srinivas.kandagatla
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:46 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, srinivas.kandagatla

From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Hi Greg,

Here are some nvmem enhancements, cleanup, and update to documentation
mostly done by Andrey, it also adds support to snvs-lpgpr on i.MX7

Can you queue them up for 4.17.

Thanks,
Srini

Andrey Smirnov (21):
  nvmem: Document struct nvmem_config
  nvmem: core: Allow specifying device name verbatim
  nvmem: Introduce devm_nvmem_(un)register()
  nvmem: vf610-ocotp: Convert to use devm_nvmem_register()
  nvmem: imx-ocotp: Convert to use devm_nvmem_register()
  nvmem: uniphier-efuse: Convert to use devm_nvmem_register()
  nvmem: snvs_lgpr: Convert to use devm_nvmem_register()
  nvmem: rockchip-efuse: Convert to use devm_nvmem_register()
  nvmem: mtk-efuse: Convert to use devm_nvmem_register()
  nvmem: meson-mx-efuse: Convert to use devm_nvmem_register()
  nvmem: meson-efuse: Convert to use devm_nvmem_register()
  nvmem: lpc18xx_otp: Convert to use devm_nvmem_register()
  nvmem: imx-iim: Convert to use devm_nvmem_register()
  nvmem: bcm-ocotp: Convert to use devm_nvmem_register()
  nvmem: qfprom: Convert to use devm_nvmem_register()
  nvmem: snvs_lpgpr: Convert commas to semicolons
  nvmem: rockchip-efuse: Make use of of_device_get_match_data()
  nvmem: vf610-ocotp: Do not use "&pdev->dev" explicitly
  nvmem: rockchip-efuse: Do not use "&pdev->dev" explicitly
  nvmem: imx-iim: Do not use "&pdev->dev" explicitly
  nvmem: bcm-ocotp: Do not use "&pdev->dev" explicitly

Andrey Yurovsky (1):
  nvmem: add i.MX7 support to snvs-lpgpr

Dong Aisheng (2):
  dt-bindings: nvmem: imx-ocotp: update the binding to reflect data
    cells
  nvmem: imx-ocotp: remove unused dead code

Icenowy Zheng (1):
  nvmem: sunxi-sid: fix H3 SID controller support

 .../devicetree/bindings/nvmem/imx-ocotp.txt        | 23 +++++--
 .../devicetree/bindings/nvmem/snvs-lpgpr.txt       |  3 +-
 drivers/nvmem/Kconfig                              |  4 +-
 drivers/nvmem/bcm-ocotp.c                          | 15 +----
 drivers/nvmem/core.c                               | 70 ++++++++++++++++++++-
 drivers/nvmem/imx-iim.c                            | 18 +-----
 drivers/nvmem/imx-ocotp.c                          | 18 +-----
 drivers/nvmem/lpc18xx_otp.c                        | 16 +----
 drivers/nvmem/meson-efuse.c                        | 16 +----
 drivers/nvmem/meson-mx-efuse.c                     | 16 +----
 drivers/nvmem/mtk-efuse.c                          | 16 +----
 drivers/nvmem/qfprom.c                             | 16 +----
 drivers/nvmem/rockchip-efuse.c                     | 32 +++-------
 drivers/nvmem/snvs_lpgpr.c                         | 53 ++++++++--------
 drivers/nvmem/sunxi_sid.c                          | 71 +++++++++++++++-------
 drivers/nvmem/uniphier-efuse.c                     | 16 +----
 drivers/nvmem/vf610-ocotp.c                        | 24 ++------
 include/linux/nvmem-provider.h                     | 42 +++++++++++++
 18 files changed, 244 insertions(+), 225 deletions(-)

-- 
2.15.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 01/25] nvmem: Document struct nvmem_config
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
@ 2018-03-09 14:46 ` srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 02/25] nvmem: core: Allow specifying device name verbatim srinivas.kandagatla
                   ` (23 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:46 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Add a simple description of struct nvmem_config and its fields.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 include/linux/nvmem-provider.h | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 497706f5adca..a39f76ff2ccd 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -22,6 +22,28 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned int offset,
 typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
 				 void *val, size_t bytes);
 
+/**
+ * struct nvmem_config - NVMEM device configuration
+ *
+ * @dev:	Parent device.
+ * @name:	Optional name.
+ * @id:		Optional device ID used in full name. Ignored if name is NULL.
+ * @owner:	Pointer to exporter module. Used for refcounting.
+ * @cells:	Optional array of pre-defined NVMEM cells.
+ * @ncells:	Number of elements in cells.
+ * @read_only:	Device is read-only.
+ * @root_only:	Device is accessibly to root only.
+ * @reg_read:	Callback to read data.
+ * @reg_write:	Callback to write data.
+ * @size:	Device size.
+ * @word_size:	Minimum read/write access granularity.
+ * @stride:	Minimum read/write access stride.
+ * @priv:	User context passed to read/write callbacks.
+ *
+ * Note: A default "nvmem<id>" name will be assigned to the device if
+ * no name is specified in its configuration. In such case "<id>" is
+ * generated with ida_simple_get() and provided id field is ignored.
+ */
 struct nvmem_config {
 	struct device		*dev;
 	const char		*name;
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 02/25] nvmem: core: Allow specifying device name verbatim
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 01/25] nvmem: Document struct nvmem_config srinivas.kandagatla
@ 2018-03-09 14:46 ` srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 03/25] nvmem: Introduce devm_nvmem_(un)register() srinivas.kandagatla
                   ` (22 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:46 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Add code to allow avoid having nvmem core append a numeric suffix to
the end of the name by passing config->id of -1.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/core.c           | 11 ++++++++---
 include/linux/nvmem-provider.h |  3 +++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 35a3dbeea324..99e04cfcc723 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -473,9 +473,14 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 	nvmem->reg_read = config->reg_read;
 	nvmem->reg_write = config->reg_write;
 	nvmem->dev.of_node = config->dev->of_node;
-	dev_set_name(&nvmem->dev, "%s%d",
-		     config->name ? : "nvmem",
-		     config->name ? config->id : nvmem->id);
+
+	if (config->id == -1 && config->name) {
+		dev_set_name(&nvmem->dev, "%s", config->name);
+	} else {
+		dev_set_name(&nvmem->dev, "%s%d",
+			     config->name ? : "nvmem",
+			     config->name ? config->id : nvmem->id);
+	}
 
 	nvmem->read_only = device_property_present(config->dev, "read-only") |
 			   config->read_only;
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index a39f76ff2ccd..b00567a07496 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -43,6 +43,9 @@ typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
  * Note: A default "nvmem<id>" name will be assigned to the device if
  * no name is specified in its configuration. In such case "<id>" is
  * generated with ida_simple_get() and provided id field is ignored.
+ *
+ * Note: Specifying name and setting id to -1 implies a unique device
+ * whose name is provided as-is (kept unaltered).
  */
 struct nvmem_config {
 	struct device		*dev;
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 03/25] nvmem: Introduce devm_nvmem_(un)register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 01/25] nvmem: Document struct nvmem_config srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 02/25] nvmem: core: Allow specifying device name verbatim srinivas.kandagatla
@ 2018-03-09 14:46 ` srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 04/25] nvmem: vf610-ocotp: Convert to use devm_nvmem_register() srinivas.kandagatla
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:46 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Introduce devm_nvmem_register()/devm_nvmem_unregister() to make
.remove() unnecessary in trivial drivers.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/core.c           | 59 ++++++++++++++++++++++++++++++++++++++++++
 include/linux/nvmem-provider.h | 17 ++++++++++++
 2 files changed, 76 insertions(+)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 99e04cfcc723..b05aa8e81303 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -549,6 +549,65 @@ int nvmem_unregister(struct nvmem_device *nvmem)
 }
 EXPORT_SYMBOL_GPL(nvmem_unregister);
 
+static void devm_nvmem_release(struct device *dev, void *res)
+{
+	WARN_ON(nvmem_unregister(*(struct nvmem_device **)res));
+}
+
+/**
+ * devm_nvmem_register() - Register a managed nvmem device for given
+ * nvmem_config.
+ * Also creates an binary entry in /sys/bus/nvmem/devices/dev-name/nvmem
+ *
+ * @config: nvmem device configuration with which nvmem device is created.
+ *
+ * Return: Will be an ERR_PTR() on error or a valid pointer to nvmem_device
+ * on success.
+ */
+struct nvmem_device *devm_nvmem_register(struct device *dev,
+					 const struct nvmem_config *config)
+{
+	struct nvmem_device **ptr, *nvmem;
+
+	ptr = devres_alloc(devm_nvmem_release, sizeof(*ptr), GFP_KERNEL);
+	if (!ptr)
+		return ERR_PTR(-ENOMEM);
+
+	nvmem = nvmem_register(config);
+
+	if (!IS_ERR(nvmem)) {
+		*ptr = nvmem;
+		devres_add(dev, ptr);
+	} else {
+		devres_free(ptr);
+	}
+
+	return nvmem;
+}
+EXPORT_SYMBOL_GPL(devm_nvmem_register);
+
+static int devm_nvmem_match(struct device *dev, void *res, void *data)
+{
+	struct nvmem_device **r = res;
+
+	return *r == data;
+}
+
+/**
+ * devm_nvmem_unregister() - Unregister previously registered managed nvmem
+ * device.
+ *
+ * @nvmem: Pointer to previously registered nvmem device.
+ *
+ * Return: Will be an negative on error or a zero on success.
+ */
+int devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem)
+{
+	return devres_release(dev, devm_nvmem_release, devm_nvmem_match, nvmem);
+}
+EXPORT_SYMBOL(devm_nvmem_unregister);
+
+
 static struct nvmem_device *__nvmem_device_get(struct device_node *np,
 					       struct nvmem_cell **cellp,
 					       const char *cell_id)
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index b00567a07496..f89598bc4e1c 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -72,6 +72,11 @@ struct nvmem_config {
 struct nvmem_device *nvmem_register(const struct nvmem_config *cfg);
 int nvmem_unregister(struct nvmem_device *nvmem);
 
+struct nvmem_device *devm_nvmem_register(struct device *dev,
+					 const struct nvmem_config *cfg);
+
+int devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem);
+
 #else
 
 static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c)
@@ -84,5 +89,17 @@ static inline int nvmem_unregister(struct nvmem_device *nvmem)
 	return -ENOSYS;
 }
 
+static inline struct nvmem_device *
+devm_nvmem_register(struct device *dev, const struct nvmem_config *c)
+{
+	return nvmem_register(c);
+}
+
+static inline int
+devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem)
+{
+	return nvmem_unregister(nvmem);
+}
+
 #endif /* CONFIG_NVMEM */
 #endif  /* ifndef _LINUX_NVMEM_PROVIDER_H */
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 04/25] nvmem: vf610-ocotp: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (2 preceding siblings ...)
  2018-03-09 14:46 ` [PATCH 03/25] nvmem: Introduce devm_nvmem_(un)register() srinivas.kandagatla
@ 2018-03-09 14:46 ` srinivas.kandagatla
  2018-03-09 14:46 ` [PATCH 05/25] nvmem: imx-ocotp: " srinivas.kandagatla
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:46 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/vf610-ocotp.c | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/drivers/nvmem/vf610-ocotp.c b/drivers/nvmem/vf610-ocotp.c
index 5ae9e002f195..5a395ffb2ca8 100644
--- a/drivers/nvmem/vf610-ocotp.c
+++ b/drivers/nvmem/vf610-ocotp.c
@@ -217,13 +217,6 @@ static const struct of_device_id ocotp_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, ocotp_of_match);
 
-static int vf610_ocotp_remove(struct platform_device *pdev)
-{
-	struct vf610_ocotp *ocotp_dev = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(ocotp_dev->nvmem);
-}
-
 static int vf610_ocotp_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -246,26 +239,20 @@ static int vf610_ocotp_probe(struct platform_device *pdev)
 			PTR_ERR(ocotp_dev->clk));
 		return PTR_ERR(ocotp_dev->clk);
 	}
+	ocotp_dev->dev = dev;
+	ocotp_dev->timing = vf610_ocotp_calculate_timing(ocotp_dev);
 
 	ocotp_config.size = resource_size(res);
 	ocotp_config.priv = ocotp_dev;
 	ocotp_config.dev = dev;
 
-	ocotp_dev->nvmem = nvmem_register(&ocotp_config);
-	if (IS_ERR(ocotp_dev->nvmem))
-		return PTR_ERR(ocotp_dev->nvmem);
+	ocotp_dev->nvmem = devm_nvmem_register(dev, &ocotp_config);
 
-	ocotp_dev->dev = dev;
-	platform_set_drvdata(pdev, ocotp_dev);
-
-	ocotp_dev->timing = vf610_ocotp_calculate_timing(ocotp_dev);
-
-	return 0;
+	return PTR_ERR_OR_ZERO(ocotp_dev->nvmem);
 }
 
 static struct platform_driver vf610_ocotp_driver = {
 	.probe = vf610_ocotp_probe,
-	.remove = vf610_ocotp_remove,
 	.driver = {
 		.name = "vf610-ocotp",
 		.of_match_table = ocotp_of_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 05/25] nvmem: imx-ocotp: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (3 preceding siblings ...)
  2018-03-09 14:46 ` [PATCH 04/25] nvmem: vf610-ocotp: Convert to use devm_nvmem_register() srinivas.kandagatla
@ 2018-03-09 14:46 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 06/25] nvmem: uniphier-efuse: " srinivas.kandagatla
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:46 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/imx-ocotp.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c
index d7ba351a70c9..f1482c664b19 100644
--- a/drivers/nvmem/imx-ocotp.c
+++ b/drivers/nvmem/imx-ocotp.c
@@ -466,26 +466,14 @@ static int imx_ocotp_probe(struct platform_device *pdev)
 	imx_ocotp_nvmem_config.dev = dev;
 	imx_ocotp_nvmem_config.priv = priv;
 	priv->config = &imx_ocotp_nvmem_config;
-	nvmem = nvmem_register(&imx_ocotp_nvmem_config);
+	nvmem = devm_nvmem_register(dev, &imx_ocotp_nvmem_config);
 
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int imx_ocotp_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static struct platform_driver imx_ocotp_driver = {
 	.probe	= imx_ocotp_probe,
-	.remove	= imx_ocotp_remove,
 	.driver = {
 		.name	= "imx_ocotp",
 		.of_match_table = imx_ocotp_dt_ids,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 06/25] nvmem: uniphier-efuse: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (4 preceding siblings ...)
  2018-03-09 14:46 ` [PATCH 05/25] nvmem: imx-ocotp: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 07/25] nvmem: snvs_lgpr: " srinivas.kandagatla
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/uniphier-efuse.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c
index be11880a1358..271f0b2ff86a 100644
--- a/drivers/nvmem/uniphier-efuse.c
+++ b/drivers/nvmem/uniphier-efuse.c
@@ -60,20 +60,9 @@ static int uniphier_efuse_probe(struct platform_device *pdev)
 	econfig.size = resource_size(res);
 	econfig.priv = priv;
 	econfig.dev = dev;
-	nvmem = nvmem_register(&econfig);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(dev, &econfig);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int uniphier_efuse_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static const struct of_device_id uniphier_efuse_of_match[] = {
@@ -84,7 +73,6 @@ MODULE_DEVICE_TABLE(of, uniphier_efuse_of_match);
 
 static struct platform_driver uniphier_efuse_driver = {
 	.probe = uniphier_efuse_probe,
-	.remove = uniphier_efuse_remove,
 	.driver = {
 		.name = "uniphier-efuse",
 		.of_match_table = uniphier_efuse_of_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 07/25] nvmem: snvs_lgpr: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (5 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 06/25] nvmem: uniphier-efuse: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 08/25] nvmem: rockchip-efuse: " srinivas.kandagatla
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/snvs_lpgpr.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/snvs_lpgpr.c b/drivers/nvmem/snvs_lpgpr.c
index e5c2a4a17f03..cb471d5e8e86 100644
--- a/drivers/nvmem/snvs_lpgpr.c
+++ b/drivers/nvmem/snvs_lpgpr.c
@@ -117,20 +117,9 @@ static int snvs_lpgpr_probe(struct platform_device *pdev)
 	cfg->reg_read  = snvs_lpgpr_read,
 	cfg->reg_write = snvs_lpgpr_write,
 
-	nvmem = nvmem_register(cfg);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(dev, cfg);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int snvs_lpgpr_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static const struct of_device_id snvs_lpgpr_dt_ids[] = {
@@ -143,7 +132,6 @@ MODULE_DEVICE_TABLE(of, snvs_lpgpr_dt_ids);
 
 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,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 08/25] nvmem: rockchip-efuse: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (6 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 07/25] nvmem: snvs_lgpr: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 09/25] nvmem: mtk-efuse: " srinivas.kandagatla
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/rockchip-efuse.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c
index f13a8335f364..fec6e4c48b9a 100644
--- a/drivers/nvmem/rockchip-efuse.c
+++ b/drivers/nvmem/rockchip-efuse.c
@@ -289,25 +289,13 @@ static int rockchip_efuse_probe(struct platform_device *pdev)
 	econfig.reg_read = match->data;
 	econfig.priv = efuse;
 	econfig.dev = efuse->dev;
-	nvmem = nvmem_register(&econfig);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(dev, &econfig);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int rockchip_efuse_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static struct platform_driver rockchip_efuse_driver = {
 	.probe = rockchip_efuse_probe,
-	.remove = rockchip_efuse_remove,
 	.driver = {
 		.name = "rockchip-efuse",
 		.of_match_table = rockchip_efuse_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 09/25] nvmem: mtk-efuse: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (7 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 08/25] nvmem: rockchip-efuse: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 10/25] nvmem: meson-mx-efuse: " srinivas.kandagatla
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/mtk-efuse.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c
index 9ee3479cfc7b..e66adf17a747 100644
--- a/drivers/nvmem/mtk-efuse.c
+++ b/drivers/nvmem/mtk-efuse.c
@@ -72,20 +72,9 @@ static int mtk_efuse_probe(struct platform_device *pdev)
 	econfig.size = resource_size(res);
 	econfig.priv = priv;
 	econfig.dev = dev;
-	nvmem = nvmem_register(&econfig);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(dev, &econfig);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int mtk_efuse_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static const struct of_device_id mtk_efuse_of_match[] = {
@@ -97,7 +86,6 @@ MODULE_DEVICE_TABLE(of, mtk_efuse_of_match);
 
 static struct platform_driver mtk_efuse_driver = {
 	.probe = mtk_efuse_probe,
-	.remove = mtk_efuse_remove,
 	.driver = {
 		.name = "mediatek,efuse",
 		.of_match_table = mtk_efuse_of_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 10/25] nvmem: meson-mx-efuse: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (8 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 09/25] nvmem: mtk-efuse: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 11/25] nvmem: meson-efuse: " srinivas.kandagatla
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/meson-mx-efuse.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/meson-mx-efuse.c b/drivers/nvmem/meson-mx-efuse.c
index 41d3a3c1104e..a085563e39e3 100644
--- a/drivers/nvmem/meson-mx-efuse.c
+++ b/drivers/nvmem/meson-mx-efuse.c
@@ -233,25 +233,13 @@ static int meson_mx_efuse_probe(struct platform_device *pdev)
 		return PTR_ERR(efuse->core_clk);
 	}
 
-	efuse->nvmem = nvmem_register(&efuse->config);
-	if (IS_ERR(efuse->nvmem))
-		return PTR_ERR(efuse->nvmem);
+	efuse->nvmem = devm_nvmem_register(&pdev->dev, &efuse->config);
 
-	platform_set_drvdata(pdev, efuse);
-
-	return 0;
-}
-
-static int meson_mx_efuse_remove(struct platform_device *pdev)
-{
-	struct meson_mx_efuse *efuse = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(efuse->nvmem);
+	return PTR_ERR_OR_ZERO(efuse->nvmem);
 }
 
 static struct platform_driver meson_mx_efuse_driver = {
 	.probe = meson_mx_efuse_probe,
-	.remove = meson_mx_efuse_remove,
 	.driver = {
 		.name = "meson-mx-efuse",
 		.of_match_table = meson_mx_efuse_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 11/25] nvmem: meson-efuse: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (9 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 10/25] nvmem: meson-mx-efuse: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 12/25] nvmem: lpc18xx_otp: " srinivas.kandagatla
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/meson-efuse.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/meson-efuse.c b/drivers/nvmem/meson-efuse.c
index a43c68f90937..71823d1403c5 100644
--- a/drivers/nvmem/meson-efuse.c
+++ b/drivers/nvmem/meson-efuse.c
@@ -60,25 +60,13 @@ static int meson_efuse_probe(struct platform_device *pdev)
 	econfig.reg_read = meson_efuse_read;
 	econfig.size = size;
 
-	nvmem = nvmem_register(&econfig);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(&pdev->dev, &econfig);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int meson_efuse_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static struct platform_driver meson_efuse_driver = {
 	.probe = meson_efuse_probe,
-	.remove = meson_efuse_remove,
 	.driver = {
 		.name = "meson-efuse",
 		.of_match_table = meson_efuse_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 12/25] nvmem: lpc18xx_otp: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (10 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 11/25] nvmem: meson-efuse: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 13/25] nvmem: imx-iim: " srinivas.kandagatla
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/lpc18xx_otp.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/lpc18xx_otp.c b/drivers/nvmem/lpc18xx_otp.c
index 95268db155e9..549b5298ac4c 100644
--- a/drivers/nvmem/lpc18xx_otp.c
+++ b/drivers/nvmem/lpc18xx_otp.c
@@ -86,20 +86,9 @@ static int lpc18xx_otp_probe(struct platform_device *pdev)
 	lpc18xx_otp_nvmem_config.dev = &pdev->dev;
 	lpc18xx_otp_nvmem_config.priv = otp;
 
-	nvmem = nvmem_register(&lpc18xx_otp_nvmem_config);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(&pdev->dev, &lpc18xx_otp_nvmem_config);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int lpc18xx_otp_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static const struct of_device_id lpc18xx_otp_dt_ids[] = {
@@ -110,7 +99,6 @@ MODULE_DEVICE_TABLE(of, lpc18xx_otp_dt_ids);
 
 static struct platform_driver lpc18xx_otp_driver = {
 	.probe	= lpc18xx_otp_probe,
-	.remove	= lpc18xx_otp_remove,
 	.driver = {
 		.name	= "lpc18xx_otp",
 		.of_match_table = lpc18xx_otp_dt_ids,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 13/25] nvmem: imx-iim: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (11 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 12/25] nvmem: lpc18xx_otp: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 14/25] nvmem: bcm-ocotp: " srinivas.kandagatla
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/imx-iim.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/imx-iim.c b/drivers/nvmem/imx-iim.c
index 52cfe91d9762..b98d76ac7790 100644
--- a/drivers/nvmem/imx-iim.c
+++ b/drivers/nvmem/imx-iim.c
@@ -138,25 +138,13 @@ static int imx_iim_probe(struct platform_device *pdev)
 	cfg.size = drvdata->nregs;
 	cfg.priv = iim;
 
-	nvmem = nvmem_register(&cfg);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
+	nvmem = devm_nvmem_register(dev, &cfg);
 
-	platform_set_drvdata(pdev, nvmem);
-
-	return 0;
-}
-
-static int imx_iim_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static struct platform_driver imx_iim_driver = {
 	.probe	= imx_iim_probe,
-	.remove	= imx_iim_remove,
 	.driver = {
 		.name	= "imx-iim",
 		.of_match_table = imx_iim_dt_ids,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 14/25] nvmem: bcm-ocotp: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (12 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 13/25] nvmem: imx-iim: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 15/25] nvmem: qfprom: " srinivas.kandagatla
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/bcm-ocotp.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/nvmem/bcm-ocotp.c b/drivers/nvmem/bcm-ocotp.c
index 5e9e324427f9..24c30fa475cc 100644
--- a/drivers/nvmem/bcm-ocotp.c
+++ b/drivers/nvmem/bcm-ocotp.c
@@ -302,27 +302,17 @@ static int bcm_otpc_probe(struct platform_device *pdev)
 
 	priv->config = &bcm_otpc_nvmem_config;
 
-	nvmem = nvmem_register(&bcm_otpc_nvmem_config);
+	nvmem = devm_nvmem_register(dev, &bcm_otpc_nvmem_config);
 	if (IS_ERR(nvmem)) {
 		dev_err(dev, "error registering nvmem config\n");
 		return PTR_ERR(nvmem);
 	}
 
-	platform_set_drvdata(pdev, nvmem);
-
 	return 0;
 }
 
-static int bcm_otpc_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
-}
-
 static struct platform_driver bcm_otpc_driver = {
 	.probe	= bcm_otpc_probe,
-	.remove	= bcm_otpc_remove,
 	.driver = {
 		.name	= "brcm-otpc",
 		.of_match_table = bcm_otpc_dt_ids,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 15/25] nvmem: qfprom: Convert to use devm_nvmem_register()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (13 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 14/25] nvmem: bcm-ocotp: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 16/25] nvmem: snvs_lpgpr: Convert commas to semicolons srinivas.kandagatla
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/qfprom.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/nvmem/qfprom.c b/drivers/nvmem/qfprom.c
index cb3b48b47d64..4f650baad983 100644
--- a/drivers/nvmem/qfprom.c
+++ b/drivers/nvmem/qfprom.c
@@ -47,13 +47,6 @@ static int qfprom_reg_write(void *context,
 	return 0;
 }
 
-static int qfprom_remove(struct platform_device *pdev)
-{
-	struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
-	return nvmem_unregister(nvmem);
-}
-
 static struct nvmem_config econfig = {
 	.name = "qfprom",
 	.stride = 1,
@@ -82,13 +75,9 @@ static int qfprom_probe(struct platform_device *pdev)
 	econfig.dev = dev;
 	econfig.priv = priv;
 
-	nvmem = nvmem_register(&econfig);
-	if (IS_ERR(nvmem))
-		return PTR_ERR(nvmem);
-
-	platform_set_drvdata(pdev, nvmem);
+	nvmem = devm_nvmem_register(dev, &econfig);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(nvmem);
 }
 
 static const struct of_device_id qfprom_of_match[] = {
@@ -99,7 +88,6 @@ MODULE_DEVICE_TABLE(of, qfprom_of_match);
 
 static struct platform_driver qfprom_driver = {
 	.probe = qfprom_probe,
-	.remove = qfprom_remove,
 	.driver = {
 		.name = "qcom,qfprom",
 		.of_match_table = qfprom_of_match,
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 16/25] nvmem: snvs_lpgpr: Convert commas to semicolons
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (14 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 15/25] nvmem: qfprom: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 17/25] nvmem: rockchip-efuse: Make use of of_device_get_match_data() srinivas.kandagatla
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Looks like commas were accidentally used where semicolons were
supposed to be. Fix that.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/snvs_lpgpr.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/nvmem/snvs_lpgpr.c b/drivers/nvmem/snvs_lpgpr.c
index cb471d5e8e86..92e1e41d128e 100644
--- a/drivers/nvmem/snvs_lpgpr.c
+++ b/drivers/nvmem/snvs_lpgpr.c
@@ -110,12 +110,12 @@ static int snvs_lpgpr_probe(struct platform_device *pdev)
 	cfg->priv = priv;
 	cfg->name = dev_name(dev);
 	cfg->dev = dev;
-	cfg->stride = 4,
-	cfg->word_size = 4,
-	cfg->size = 4,
-	cfg->owner = THIS_MODULE,
-	cfg->reg_read  = snvs_lpgpr_read,
-	cfg->reg_write = snvs_lpgpr_write,
+	cfg->stride = 4;
+	cfg->word_size = 4;
+	cfg->size = 4;
+	cfg->owner = THIS_MODULE;
+	cfg->reg_read  = snvs_lpgpr_read;
+	cfg->reg_write = snvs_lpgpr_write;
 
 	nvmem = devm_nvmem_register(dev, cfg);
 
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 17/25] nvmem: rockchip-efuse: Make use of of_device_get_match_data()
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (15 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 16/25] nvmem: snvs_lpgpr: Convert commas to semicolons srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 18/25] nvmem: vf610-ocotp: Do not use "&pdev->dev" explicitly srinivas.kandagatla
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

Simplify code a bit by using of_device_get_match_data() instead of
of_match_device().

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/rockchip-efuse.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c
index fec6e4c48b9a..ade8848adf82 100644
--- a/drivers/nvmem/rockchip-efuse.c
+++ b/drivers/nvmem/rockchip-efuse.c
@@ -259,11 +259,11 @@ static int rockchip_efuse_probe(struct platform_device *pdev)
 	struct resource *res;
 	struct nvmem_device *nvmem;
 	struct rockchip_efuse_chip *efuse;
-	const struct of_device_id *match;
+	const void *data;
 	struct device *dev = &pdev->dev;
 
-	match = of_match_device(dev->driver->of_match_table, dev);
-	if (!match || !match->data) {
+	data = of_device_get_match_data(dev);
+	if (!data) {
 		dev_err(dev, "failed to get match data\n");
 		return -EINVAL;
 	}
@@ -286,7 +286,7 @@ static int rockchip_efuse_probe(struct platform_device *pdev)
 	if (of_property_read_u32(dev->of_node, "rockchip,efuse-size",
 				 &econfig.size))
 		econfig.size = resource_size(res);
-	econfig.reg_read = match->data;
+	econfig.reg_read = data;
 	econfig.priv = efuse;
 	econfig.dev = efuse->dev;
 	nvmem = devm_nvmem_register(dev, &econfig);
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 18/25] nvmem: vf610-ocotp: Do not use "&pdev->dev" explicitly
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (16 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 17/25] nvmem: rockchip-efuse: Make use of of_device_get_match_data() srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 19/25] nvmem: rockchip-efuse: " srinivas.kandagatla
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

There already a "dev" variable for that. Use it.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/vf610-ocotp.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/nvmem/vf610-ocotp.c b/drivers/nvmem/vf610-ocotp.c
index 5a395ffb2ca8..4662309489db 100644
--- a/drivers/nvmem/vf610-ocotp.c
+++ b/drivers/nvmem/vf610-ocotp.c
@@ -223,8 +223,7 @@ static int vf610_ocotp_probe(struct platform_device *pdev)
 	struct resource *res;
 	struct vf610_ocotp *ocotp_dev;
 
-	ocotp_dev = devm_kzalloc(&pdev->dev,
-			sizeof(struct vf610_ocotp), GFP_KERNEL);
+	ocotp_dev = devm_kzalloc(dev, sizeof(struct vf610_ocotp), GFP_KERNEL);
 	if (!ocotp_dev)
 		return -ENOMEM;
 
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 19/25] nvmem: rockchip-efuse: Do not use "&pdev->dev" explicitly
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (17 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 18/25] nvmem: vf610-ocotp: Do not use "&pdev->dev" explicitly srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 20/25] nvmem: imx-iim: " srinivas.kandagatla
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

There's "dev" variable for this already. Use it.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/rockchip-efuse.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c
index ade8848adf82..b3b0b648be62 100644
--- a/drivers/nvmem/rockchip-efuse.c
+++ b/drivers/nvmem/rockchip-efuse.c
@@ -268,21 +268,21 @@ static int rockchip_efuse_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}
 
-	efuse = devm_kzalloc(&pdev->dev, sizeof(struct rockchip_efuse_chip),
+	efuse = devm_kzalloc(dev, sizeof(struct rockchip_efuse_chip),
 			     GFP_KERNEL);
 	if (!efuse)
 		return -ENOMEM;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	efuse->base = devm_ioremap_resource(&pdev->dev, res);
+	efuse->base = devm_ioremap_resource(dev, res);
 	if (IS_ERR(efuse->base))
 		return PTR_ERR(efuse->base);
 
-	efuse->clk = devm_clk_get(&pdev->dev, "pclk_efuse");
+	efuse->clk = devm_clk_get(dev, "pclk_efuse");
 	if (IS_ERR(efuse->clk))
 		return PTR_ERR(efuse->clk);
 
-	efuse->dev = &pdev->dev;
+	efuse->dev = dev;
 	if (of_property_read_u32(dev->of_node, "rockchip,efuse-size",
 				 &econfig.size))
 		econfig.size = resource_size(res);
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 20/25] nvmem: imx-iim: Do not use "&pdev->dev" explicitly
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (18 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 19/25] nvmem: rockchip-efuse: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 21/25] nvmem: bcm-ocotp: " srinivas.kandagatla
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

There's already "dev" variable for that. Use it.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/imx-iim.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nvmem/imx-iim.c b/drivers/nvmem/imx-iim.c
index b98d76ac7790..6651e4cdc002 100644
--- a/drivers/nvmem/imx-iim.c
+++ b/drivers/nvmem/imx-iim.c
@@ -125,7 +125,7 @@ static int imx_iim_probe(struct platform_device *pdev)
 
 	drvdata = of_id->data;
 
-	iim->clk = devm_clk_get(&pdev->dev, NULL);
+	iim->clk = devm_clk_get(dev, NULL);
 	if (IS_ERR(iim->clk))
 		return PTR_ERR(iim->clk);
 
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 21/25] nvmem: bcm-ocotp: Do not use "&pdev->dev" explicitly
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (19 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 20/25] nvmem: imx-iim: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 22/25] nvmem: add i.MX7 support to snvs-lpgpr srinivas.kandagatla
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Andrey Smirnov,
	Heiko Stuebner, Masahiro Yamada, Carlo Caione, Kevin Hilman,
	Matthias Brugger, cphealy, linux-mediatek, linux-rockchip,
	linux-amlogic, linux-arm-kernel

From: Andrey Smirnov <andrew.smirnov@gmail.com>

There's "dev" variable for this already. Use it.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy@gmail.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/bcm-ocotp.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/nvmem/bcm-ocotp.c b/drivers/nvmem/bcm-ocotp.c
index 24c30fa475cc..4159b3f41d79 100644
--- a/drivers/nvmem/bcm-ocotp.c
+++ b/drivers/nvmem/bcm-ocotp.c
@@ -262,8 +262,7 @@ static int bcm_otpc_probe(struct platform_device *pdev)
 	else if (of_device_is_compatible(dev->of_node, "brcm,ocotp-v2"))
 		priv->map = &otp_map_v2;
 	else {
-		dev_err(&pdev->dev,
-			"%s otpc config map not defined\n", __func__);
+		dev_err(dev, "%s otpc config map not defined\n", __func__);
 		return -EINVAL;
 	}
 
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 22/25] nvmem: add i.MX7 support to snvs-lpgpr
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (20 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 21/25] nvmem: bcm-ocotp: " srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 23/25] nvmem: sunxi-sid: fix H3 SID controller support srinivas.kandagatla
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, srinivas.kandagatla, Andrey Yurovsky

From: Andrey Yurovsky <yurovsky@gmail.com>

The i.MX7 family has similar SNVS hardware so make the snvs-lpgpr
support it along with the i.MX6 family. The register interface is the
same except for the number and offset of the general purpose registers.

Signed-off-by: Andrey Yurovsky <yurovsky@gmail.com>
Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 .../devicetree/bindings/nvmem/snvs-lpgpr.txt       |  3 ++-
 drivers/nvmem/Kconfig                              |  4 ++--
 drivers/nvmem/snvs_lpgpr.c                         | 27 +++++++++++++++++-----
 3 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/nvmem/snvs-lpgpr.txt b/Documentation/devicetree/bindings/nvmem/snvs-lpgpr.txt
index 20bc49b49799..3cb170896658 100644
--- a/Documentation/devicetree/bindings/nvmem/snvs-lpgpr.txt
+++ b/Documentation/devicetree/bindings/nvmem/snvs-lpgpr.txt
@@ -1,5 +1,5 @@
 Device tree bindings for Low Power General Purpose Register found in i.MX6Q/D
-Secure Non-Volatile Storage.
+and i.MX7 Secure Non-Volatile Storage.
 
 This DT node should be represented as a sub-node of a "syscon",
 "simple-mfd" node.
@@ -8,6 +8,7 @@ Required properties:
 - compatible: should be one of the fallowing variants:
 	"fsl,imx6q-snvs-lpgpr" for Freescale i.MX6Q/D/DL/S
 	"fsl,imx6ul-snvs-lpgpr" for Freescale i.MX6UL
+	"fsl,imx7d-snvs-lpgpr" for Freescale i.MX7D/S
 
 Example:
 snvs: snvs@020cc000 {
diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig
index ff505af064ba..5f9bc787d634 100644
--- a/drivers/nvmem/Kconfig
+++ b/drivers/nvmem/Kconfig
@@ -167,10 +167,10 @@ config MESON_MX_EFUSE
 
 config NVMEM_SNVS_LPGPR
 	tristate "Support for Low Power General Purpose Register"
-	depends on SOC_IMX6 || COMPILE_TEST
+	depends on SOC_IMX6 || SOC_IMX7D || COMPILE_TEST
 	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.
+	  i.MX6 and i.MX7 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.
diff --git a/drivers/nvmem/snvs_lpgpr.c b/drivers/nvmem/snvs_lpgpr.c
index 92e1e41d128e..c050a23a9f2b 100644
--- a/drivers/nvmem/snvs_lpgpr.c
+++ b/drivers/nvmem/snvs_lpgpr.c
@@ -14,15 +14,21 @@
 #include <linux/regmap.h>
 
 #define IMX6Q_SNVS_HPLR		0x00
-#define IMX6Q_GPR_SL		BIT(5)
 #define IMX6Q_SNVS_LPLR		0x34
-#define IMX6Q_GPR_HL		BIT(5)
 #define IMX6Q_SNVS_LPGPR	0x68
 
+#define IMX7D_SNVS_HPLR		0x00
+#define IMX7D_SNVS_LPLR		0x34
+#define IMX7D_SNVS_LPGPR	0x90
+
+#define IMX_GPR_SL		BIT(5)
+#define IMX_GPR_HL		BIT(5)
+
 struct snvs_lpgpr_cfg {
 	int offset;
 	int offset_hplr;
 	int offset_lplr;
+	int size;
 };
 
 struct snvs_lpgpr_priv {
@@ -36,6 +42,14 @@ static const struct snvs_lpgpr_cfg snvs_lpgpr_cfg_imx6q = {
 	.offset		= IMX6Q_SNVS_LPGPR,
 	.offset_hplr	= IMX6Q_SNVS_HPLR,
 	.offset_lplr	= IMX6Q_SNVS_LPLR,
+	.size		= 4,
+};
+
+static const struct snvs_lpgpr_cfg snvs_lpgpr_cfg_imx7d = {
+	.offset		= IMX7D_SNVS_LPGPR,
+	.offset_hplr	= IMX7D_SNVS_HPLR,
+	.offset_lplr	= IMX7D_SNVS_LPLR,
+	.size		= 16,
 };
 
 static int snvs_lpgpr_write(void *context, unsigned int offset, void *val,
@@ -50,14 +64,14 @@ static int snvs_lpgpr_write(void *context, unsigned int offset, void *val,
 	if (ret < 0)
 		return ret;
 
-	if (lock_reg & IMX6Q_GPR_SL)
+	if (lock_reg & IMX_GPR_SL)
 		return -EPERM;
 
 	ret = regmap_read(priv->regmap, dcfg->offset_lplr, &lock_reg);
 	if (ret < 0)
 		return ret;
 
-	if (lock_reg & IMX6Q_GPR_HL)
+	if (lock_reg & IMX_GPR_HL)
 		return -EPERM;
 
 	return regmap_bulk_write(priv->regmap, dcfg->offset + offset, val,
@@ -112,7 +126,7 @@ static int snvs_lpgpr_probe(struct platform_device *pdev)
 	cfg->dev = dev;
 	cfg->stride = 4;
 	cfg->word_size = 4;
-	cfg->size = 4;
+	cfg->size = dcfg->size,
 	cfg->owner = THIS_MODULE;
 	cfg->reg_read  = snvs_lpgpr_read;
 	cfg->reg_write = snvs_lpgpr_write;
@@ -126,6 +140,7 @@ static const struct of_device_id snvs_lpgpr_dt_ids[] = {
 	{ .compatible = "fsl,imx6q-snvs-lpgpr", .data = &snvs_lpgpr_cfg_imx6q },
 	{ .compatible = "fsl,imx6ul-snvs-lpgpr",
 	  .data = &snvs_lpgpr_cfg_imx6q },
+	{ .compatible = "fsl,imx7d-snvs-lpgpr",	.data = &snvs_lpgpr_cfg_imx7d },
 	{ },
 };
 MODULE_DEVICE_TABLE(of, snvs_lpgpr_dt_ids);
@@ -140,5 +155,5 @@ static struct platform_driver snvs_lpgpr_driver = {
 module_platform_driver(snvs_lpgpr_driver);
 
 MODULE_AUTHOR("Oleksij Rempel <o.rempel@pengutronix.de>");
-MODULE_DESCRIPTION("Low Power General Purpose Register in i.MX6 Secure Non-Volatile Storage");
+MODULE_DESCRIPTION("Low Power General Purpose Register in i.MX6 and i.MX7 Secure Non-Volatile Storage");
 MODULE_LICENSE("GPL v2");
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 23/25] nvmem: sunxi-sid: fix H3 SID controller support
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (21 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 22/25] nvmem: add i.MX7 support to snvs-lpgpr srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 24/25] dt-bindings: nvmem: imx-ocotp: update the binding to reflect data cells srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 25/25] nvmem: imx-ocotp: remove unused dead code srinivas.kandagatla
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, srinivas.kandagatla, Icenowy Zheng

From: Icenowy Zheng <icenowy@aosc.io>

It seems that doing some operation will make the value pre-read on H3
SID controller wrong again, so all operation should be performed by
register.

Change the SID reading to use register only.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/sunxi_sid.c | 71 +++++++++++++++++++++++++++++++++--------------
 1 file changed, 50 insertions(+), 21 deletions(-)

diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c
index 99bd54d85fcb..26bb637afe92 100644
--- a/drivers/nvmem/sunxi_sid.c
+++ b/drivers/nvmem/sunxi_sid.c
@@ -85,13 +85,14 @@ static int sunxi_sid_read(void *context, unsigned int offset,
 }
 
 static int sun8i_sid_register_readout(const struct sunxi_sid *sid,
-				      const unsigned int word)
+				      const unsigned int offset,
+				      u32 *out)
 {
 	u32 reg_val;
 	int ret;
 
 	/* Set word, lock access, and set read command */
-	reg_val = (word & SUN8I_SID_OFFSET_MASK)
+	reg_val = (offset & SUN8I_SID_OFFSET_MASK)
 		  << SUN8I_SID_OFFSET_SHIFT;
 	reg_val |= SUN8I_SID_OP_LOCK | SUN8I_SID_READ;
 	writel(reg_val, sid->base + SUN8I_SID_PRCTL);
@@ -101,7 +102,49 @@ static int sun8i_sid_register_readout(const struct sunxi_sid *sid,
 	if (ret)
 		return ret;
 
+	if (out)
+		*out = readl(sid->base + SUN8I_SID_RDKEY);
+
 	writel(0, sid->base + SUN8I_SID_PRCTL);
+
+	return 0;
+}
+
+/*
+ * On Allwinner H3, the value on the 0x200 offset of the SID controller seems
+ * to be not reliable at all.
+ * Read by the registers instead.
+ */
+static int sun8i_sid_read_byte_by_reg(const struct sunxi_sid *sid,
+				      const unsigned int offset,
+				      u8 *out)
+{
+	u32 word;
+	int ret;
+
+	ret = sun8i_sid_register_readout(sid, offset & ~0x03, &word);
+
+	if (ret)
+		return ret;
+
+	*out = (word >> ((offset & 0x3) * 8)) & 0xff;
+
+	return 0;
+}
+
+static int sun8i_sid_read_by_reg(void *context, unsigned int offset,
+				 void *val, size_t bytes)
+{
+	struct sunxi_sid *sid = context;
+	u8 *buf = val;
+	int ret;
+
+	while (bytes--) {
+		ret = sun8i_sid_read_byte_by_reg(sid, offset++, buf++);
+		if (ret)
+			return ret;
+	}
+
 	return 0;
 }
 
@@ -131,26 +174,12 @@ static int sunxi_sid_probe(struct platform_device *pdev)
 
 	size = cfg->size;
 
-	if (cfg->need_register_readout) {
-		/*
-		 * H3's SID controller have a bug that the value at 0x200
-		 * offset is not the correct value when the hardware is reseted.
-		 * However, after doing a register-based read operation, the
-		 * value become right.
-		 * Do a full read operation here, but ignore its value
-		 * (as it's more fast to read by direct MMIO value than
-		 * with registers)
-		 */
-		for (i = 0; i < (size >> 2); i++) {
-			ret = sun8i_sid_register_readout(sid, i);
-			if (ret)
-				return ret;
-		}
-	}
-
 	econfig.size = size;
 	econfig.dev = dev;
-	econfig.reg_read = sunxi_sid_read;
+	if (cfg->need_register_readout)
+		econfig.reg_read = sun8i_sid_read_by_reg;
+	else
+		econfig.reg_read = sunxi_sid_read;
 	econfig.priv = sid;
 	nvmem = nvmem_register(&econfig);
 	if (IS_ERR(nvmem))
@@ -163,7 +192,7 @@ static int sunxi_sid_probe(struct platform_device *pdev)
 	}
 
 	for (i = 0; i < size; i++)
-		randomness[i] = sunxi_sid_read_byte(sid, i);
+		econfig.reg_read(sid, i, &randomness[i], 1);
 
 	add_device_randomness(randomness, size);
 	kfree(randomness);
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 24/25] dt-bindings: nvmem: imx-ocotp: update the binding to reflect data cells
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (22 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 23/25] nvmem: sunxi-sid: fix H3 SID controller support srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  2018-03-09 14:47 ` [PATCH 25/25] nvmem: imx-ocotp: remove unused dead code srinivas.kandagatla
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh
  Cc: linux-kernel, srinivas.kandagatla, Dong Aisheng, Rob Herring,
	Mark Rutland, Shawn Guo

From: Dong Aisheng <aisheng.dong@nxp.com>

imx-ocotp is implemented based on nvmem which can have data cells
as child node. Update the binding doc to reflect it to be more easily
understood by users.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 .../devicetree/bindings/nvmem/imx-ocotp.txt        | 23 ++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/nvmem/imx-ocotp.txt b/Documentation/devicetree/bindings/nvmem/imx-ocotp.txt
index f162c72b4e36..729f6747813b 100644
--- a/Documentation/devicetree/bindings/nvmem/imx-ocotp.txt
+++ b/Documentation/devicetree/bindings/nvmem/imx-ocotp.txt
@@ -11,17 +11,32 @@ Required properties:
 	"fsl,imx6ul-ocotp" (i.MX6UL),
 	"fsl,imx7d-ocotp" (i.MX7D/S),
 	followed by "syscon".
+- #address-cells : Should be 1
+- #size-cells : Should be 1
 - reg: Should contain the register base and length.
 - clocks: Should contain a phandle pointing to the gated peripheral clock.
 
 Optional properties:
 - read-only: disable write access
 
-Example:
+Optional Child nodes:
+
+- Data cells of ocotp:
+  Detailed bindings are described in bindings/nvmem/nvmem.txt
 
+Example:
 	ocotp: ocotp@21bc000 {
-		compatible = "fsl,imx6q-ocotp", "syscon";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "fsl,imx6sx-ocotp", "syscon";
 		reg = <0x021bc000 0x4000>;
-		clocks = <&clks IMX6QDL_CLK_IIM>;
-		read-only;
+		clocks = <&clks IMX6SX_CLK_OCOTP>;
+
+		tempmon_calib: calib@38 {
+			reg = <0x38 4>;
+		};
+
+		tempmon_temp_grade: temp-grade@20 {
+			reg = <0x20 4>;
+		};
 	};
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 25/25] nvmem: imx-ocotp: remove unused dead code
  2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
                   ` (23 preceding siblings ...)
  2018-03-09 14:47 ` [PATCH 24/25] dt-bindings: nvmem: imx-ocotp: update the binding to reflect data cells srinivas.kandagatla
@ 2018-03-09 14:47 ` srinivas.kandagatla
  24 siblings, 0 replies; 26+ messages in thread
From: srinivas.kandagatla @ 2018-03-09 14:47 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, srinivas.kandagatla, Dong Aisheng, Shawn Guo

From: Dong Aisheng <aisheng.dong@nxp.com>

remove unused dead code

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/imx-ocotp.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c
index f1482c664b19..60816c856dd6 100644
--- a/drivers/nvmem/imx-ocotp.c
+++ b/drivers/nvmem/imx-ocotp.c
@@ -439,7 +439,6 @@ MODULE_DEVICE_TABLE(of, imx_ocotp_dt_ids);
 
 static int imx_ocotp_probe(struct platform_device *pdev)
 {
-	const struct of_device_id *of_id;
 	struct device *dev = &pdev->dev;
 	struct resource *res;
 	struct ocotp_priv *priv;
@@ -460,7 +459,6 @@ static int imx_ocotp_probe(struct platform_device *pdev)
 	if (IS_ERR(priv->clk))
 		return PTR_ERR(priv->clk);
 
-	of_id = of_match_device(imx_ocotp_dt_ids, dev);
 	priv->params = of_device_get_match_data(&pdev->dev);
 	imx_ocotp_nvmem_config.size = 4 * priv->params->nregs;
 	imx_ocotp_nvmem_config.dev = dev;
-- 
2.15.1

^ permalink raw reply related	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2018-03-09 14:47 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-09 14:46 [PATCH 00/25] nvmem: patches for v4.17 srinivas.kandagatla
2018-03-09 14:46 ` [PATCH 01/25] nvmem: Document struct nvmem_config srinivas.kandagatla
2018-03-09 14:46 ` [PATCH 02/25] nvmem: core: Allow specifying device name verbatim srinivas.kandagatla
2018-03-09 14:46 ` [PATCH 03/25] nvmem: Introduce devm_nvmem_(un)register() srinivas.kandagatla
2018-03-09 14:46 ` [PATCH 04/25] nvmem: vf610-ocotp: Convert to use devm_nvmem_register() srinivas.kandagatla
2018-03-09 14:46 ` [PATCH 05/25] nvmem: imx-ocotp: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 06/25] nvmem: uniphier-efuse: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 07/25] nvmem: snvs_lgpr: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 08/25] nvmem: rockchip-efuse: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 09/25] nvmem: mtk-efuse: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 10/25] nvmem: meson-mx-efuse: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 11/25] nvmem: meson-efuse: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 12/25] nvmem: lpc18xx_otp: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 13/25] nvmem: imx-iim: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 14/25] nvmem: bcm-ocotp: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 15/25] nvmem: qfprom: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 16/25] nvmem: snvs_lpgpr: Convert commas to semicolons srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 17/25] nvmem: rockchip-efuse: Make use of of_device_get_match_data() srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 18/25] nvmem: vf610-ocotp: Do not use "&pdev->dev" explicitly srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 19/25] nvmem: rockchip-efuse: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 20/25] nvmem: imx-iim: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 21/25] nvmem: bcm-ocotp: " srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 22/25] nvmem: add i.MX7 support to snvs-lpgpr srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 23/25] nvmem: sunxi-sid: fix H3 SID controller support srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 24/25] dt-bindings: nvmem: imx-ocotp: update the binding to reflect data cells srinivas.kandagatla
2018-03-09 14:47 ` [PATCH 25/25] nvmem: imx-ocotp: remove unused dead code srinivas.kandagatla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).