You need to sign in or sign up before continuing.
提交 731aa3fa 编写于 作者: S Srinivas Kandagatla 提交者: Greg Kroah-Hartman

nvmem: core: add support to auto devid

For nvmem providers which have multiple instances, it is required
to suffix the provider name with proper id, so that they do not
confict for the same name. Currently the core does not handle
this case properly eventhough core already has logic to generate the id.

This patch add new devid type NVMEM_DEVID_AUTO for providers to be
able to allow core to assign id and append it to provier name.
Reported-by: NShawn Guo <shawn.guo@linaro.org>
Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: NShawn Guo <shawn.guo@linaro.org>
Link: https://lore.kernel.org/r/20200722100705.7772-8-srinivas.kandagatla@linaro.orgSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 5037d368
...@@ -635,12 +635,18 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) ...@@ -635,12 +635,18 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
if (!config->no_of_node) if (!config->no_of_node)
nvmem->dev.of_node = config->dev->of_node; nvmem->dev.of_node = config->dev->of_node;
if (config->id == -1 && config->name) { switch (config->id) {
case NVMEM_DEVID_NONE:
dev_set_name(&nvmem->dev, "%s", config->name); dev_set_name(&nvmem->dev, "%s", config->name);
} else { break;
case NVMEM_DEVID_AUTO:
dev_set_name(&nvmem->dev, "%s%d", config->name, nvmem->id);
break;
default:
dev_set_name(&nvmem->dev, "%s%d", dev_set_name(&nvmem->dev, "%s%d",
config->name ? : "nvmem", config->name ? : "nvmem",
config->name ? config->id : nvmem->id); config->name ? config->id : nvmem->id);
break;
} }
nvmem->read_only = device_property_present(config->dev, "read-only") || nvmem->read_only = device_property_present(config->dev, "read-only") ||
......
...@@ -27,6 +27,9 @@ enum nvmem_type { ...@@ -27,6 +27,9 @@ enum nvmem_type {
NVMEM_TYPE_BATTERY_BACKED, NVMEM_TYPE_BATTERY_BACKED,
}; };
#define NVMEM_DEVID_NONE (-1)
#define NVMEM_DEVID_AUTO (-2)
/** /**
* struct nvmem_config - NVMEM device configuration * struct nvmem_config - NVMEM device configuration
* *
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册