nvmem: add new config option
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Fri, 30 Nov 2018 11:53:25 +0000 (11:53 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Dec 2018 14:45:46 +0000 (15:45 +0100)
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>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvmem/core.c
include/linux/nvmem-provider.h

index 22345e65a3011cf4c56a56311d4dc3a853d9f393..f7301bb4ef3bc667480b96b77d68eac3fc6d4fab 100644 (file)
@@ -635,7 +635,8 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
        nvmem->type = config->type;
        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);
index 5b2dd0a987d2355477bfbe4d36855761e19a67a6..fe051323be0a2c0c44778426f3012731d03b9015 100644 (file)
@@ -38,6 +38,7 @@ enum nvmem_type {
  * @type:      Type of the nvmem storage
  * @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.
@@ -62,6 +63,7 @@ struct nvmem_config {
        enum nvmem_type         type;
        bool                    read_only;
        bool                    root_only;
+       bool                    no_of_node;
        nvmem_reg_read_t        reg_read;
        nvmem_reg_write_t       reg_write;
        int     size;