diff mbox series

[v2,01/25] nvmem: add new config option

Message ID 20181113140133.17385-2-brgl@bgdev.pl
State Not Applicable
Headers show
Series at24: remove | expand

Commit Message

Bartosz Golaszewski Nov. 13, 2018, 2:01 p.m. UTC
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

We want to add nvmem support for MTD. TI DaVinci is the first platform
that will be using it, but only in non-DT mode. In order not to
introduce any new interface to supporting of which we would have to
commit - add a new config option that tells nvmem not to use the DT
node of the parent device.

This way we won't be creating nvmem devices corresponding with MTD
partitions defined in device tree. By default MTD will set this new
field to true.

Once a set of bindings for MTD nvmem cells is agreed upon, we'll be
able to remove this option.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 drivers/nvmem/core.c           | 3 ++-
 include/linux/nvmem-provider.h | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

Comments

Bartosz Golaszewski Nov. 29, 2018, 2:30 p.m. UTC | #1
wt., 13 lis 2018 o 15:01 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
>
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> We want to add nvmem support for MTD. TI DaVinci is the first platform
> that will be using it, but only in non-DT mode. In order not to
> introduce any new interface to supporting of which we would have to
> commit - add a new config option that tells nvmem not to use the DT
> node of the parent device.
>
> This way we won't be creating nvmem devices corresponding with MTD
> partitions defined in device tree. By default MTD will set this new
> field to true.
>
> Once a set of bindings for MTD nvmem cells is agreed upon, we'll be
> able to remove this option.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
>  drivers/nvmem/core.c           | 3 ++-
>  include/linux/nvmem-provider.h | 2 ++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index 9b18ce90f907..ac7971e8154e 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -604,7 +604,8 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
>         nvmem->priv = config->priv;
>         nvmem->reg_read = config->reg_read;
>         nvmem->reg_write = config->reg_write;
> -       nvmem->dev.of_node = config->dev->of_node;
> +       if (!config->no_of_node)
> +               nvmem->dev.of_node = config->dev->of_node;
>
>         if (config->id == -1 && config->name) {
>                 dev_set_name(&nvmem->dev, "%s", config->name);
> diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
> index 1e3283c2af77..e53545e9852b 100644
> --- a/include/linux/nvmem-provider.h
> +++ b/include/linux/nvmem-provider.h
> @@ -30,6 +30,7 @@ typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
>   * @ncells:    Number of elements in cells.
>   * @read_only: Device is read-only.
>   * @root_only: Device is accessibly to root only.
> + * @no_of_node:        Device should not use the parent's of_node even if it's !NULL.
>   * @reg_read:  Callback to read data.
>   * @reg_write: Callback to write data.
>   * @size:      Device size.
> @@ -53,6 +54,7 @@ struct nvmem_config {
>         int                     ncells;
>         bool                    read_only;
>         bool                    root_only;
> +       bool                    no_of_node;
>         nvmem_reg_read_t        reg_read;
>         nvmem_reg_write_t       reg_write;
>         int     size;
> --
> 2.19.1
>

Hi Srinivas,

if there are no objections - can you Ack this patch for Greg to pick
up into char-misc?

Bart
Srinivas Kandagatla Nov. 29, 2018, 2:32 p.m. UTC | #2
> 
> Hi Srinivas,
> 
> if there are no objections - can you Ack this patch for Greg to pick
> up into char-misc?

Patch is fine for me. I normally send all the nvmem patches just before rc5.

--srini
> 
> Bart
>
Bartosz Golaszewski Nov. 29, 2018, 2:35 p.m. UTC | #3
czw., 29 lis 2018 o 15:32 Srinivas Kandagatla
<srinivas.kandagatla@linaro.org> napisał(a):
>
>
> >
> > Hi Srinivas,
> >
> > if there are no objections - can you Ack this patch for Greg to pick
> > up into char-misc?
>
> Patch is fine for me. I normally send all the nvmem patches just before rc5.
>
> --srini
> >
> > Bart
> >

Boris, are you fine with Srinivas sending the MTD patch as well so
that they stay together?

Bart
Boris Brezillon Nov. 29, 2018, 2:43 p.m. UTC | #4
On Thu, 29 Nov 2018 15:35:58 +0100
Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> czw., 29 lis 2018 o 15:32 Srinivas Kandagatla
> <srinivas.kandagatla@linaro.org> napisał(a):
> >
> >  
> > >
> > > Hi Srinivas,
> > >
> > > if there are no objections - can you Ack this patch for Greg to pick
> > > up into char-misc?  
> >
> > Patch is fine for me. I normally send all the nvmem patches just before rc5.
> >
> > --srini  
> > >
> > > Bart
> > >  
> 
> Boris, are you fine with Srinivas sending the MTD patch as well so
> that they stay together?

Yes, I'll just need an immutable branch/tag in case we have conflicting
changes in the MTD tree.
diff mbox series

Patch

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 9b18ce90f907..ac7971e8154e 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -604,7 +604,8 @@  struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 	nvmem->priv = config->priv;
 	nvmem->reg_read = config->reg_read;
 	nvmem->reg_write = config->reg_write;
-	nvmem->dev.of_node = config->dev->of_node;
+	if (!config->no_of_node)
+		nvmem->dev.of_node = config->dev->of_node;
 
 	if (config->id == -1 && config->name) {
 		dev_set_name(&nvmem->dev, "%s", config->name);
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 1e3283c2af77..e53545e9852b 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -30,6 +30,7 @@  typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
  * @ncells:	Number of elements in cells.
  * @read_only:	Device is read-only.
  * @root_only:	Device is accessibly to root only.
+ * @no_of_node:	Device should not use the parent's of_node even if it's !NULL.
  * @reg_read:	Callback to read data.
  * @reg_write:	Callback to write data.
  * @size:	Device size.
@@ -53,6 +54,7 @@  struct nvmem_config {
 	int			ncells;
 	bool			read_only;
 	bool			root_only;
+	bool			no_of_node;
 	nvmem_reg_read_t	reg_read;
 	nvmem_reg_write_t	reg_write;
 	int	size;