History

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.

Srinivas Kandagatla committed 6 years ago

Commit 731aa3f1 parent 5037d362 files · +11 −2Browse files

Unified · Split

2 files
  1. drivers/nvmem/core.c +8 −2
  2. include/linux/nvmem-provider.h +3 −0
drivers/nvmem/core.c+8−2
@@ -635,12 +635,18 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) · 634 unmodified lines
635 if (!config->no_of_node)635 if (!config->no_of_node)
636 nvmem->dev.of_node = config->dev->of_node;636 nvmem->dev.of_node = config->dev->of_node;
637 637
638 if (config->id == -1 && config->name) {638 switch (config->id) {
639 case NVMEM_DEVID_NONE:
639 dev_set_name(&nvmem->dev, "%s", config->name);640 dev_set_name(&nvmem->dev, "%s", config->name);
640 } else {641 break;
642 case NVMEM_DEVID_AUTO:
643 dev_set_name(&nvmem->dev, "%s%d", config->name, nvmem->id);
644 break;
645 default:
641 dev_set_name(&nvmem->dev, "%s%d",646 dev_set_name(&nvmem->dev, "%s%d",
642 config->name ? : "nvmem",647 config->name ? : "nvmem",
643 config->name ? config->id : nvmem->id);648 config->name ? config->id : nvmem->id);
649 break;
644 }650 }
645 651
646 nvmem->read_only = device_property_present(config->dev, "read-only") ||652 nvmem->read_only = device_property_present(config->dev, "read-only") ||
include/linux/nvmem-provider.h+3−0
@@ -27,6 +27,9 @@ enum nvmem_type { · 26 unmodified lines
27 NVMEM_TYPE_BATTERY_BACKED,27 NVMEM_TYPE_BATTERY_BACKED,
28};28};
29 29
30#define NVMEM_DEVID_NONE (-1)
31#define NVMEM_DEVID_AUTO (-2)
32
30/**33/**
31 * struct nvmem_config - NVMEM device configuration34 * struct nvmem_config - NVMEM device configuration
32 *35 *