Commit 731aa3fa authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Greg Kroah-Hartman
Browse files

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: default avatarShawn Guo <shawn.guo@linaro.org>
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: default avatarShawn Guo <shawn.guo@linaro.org>
Link: https://lore.kernel.org/r/20200722100705.7772-8-srinivas.kandagatla@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5037d368
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -635,12 +635,18 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
	if (!config->no_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);
	} 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",
			     config->name ? : "nvmem",
			     config->name ? config->id : nvmem->id);
		break;
	}

	nvmem->read_only = device_property_present(config->dev, "read-only") ||
+3 −0
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ enum nvmem_type {
	NVMEM_TYPE_BATTERY_BACKED,
};

#define NVMEM_DEVID_NONE	(-1)
#define NVMEM_DEVID_AUTO	(-2)

/**
 * struct nvmem_config - NVMEM device configuration
 *