Hi Bartosz, On Fri, 10 Aug 2018 10:04:58 +0200 Bartosz Golaszewski <brgl@xxxxxxxx> wrote: > +struct nvmem_cell_lookup { > + struct nvmem_cell_info info; > + struct list_head list; > + const char *nvmem_name; > +}; Hm, maybe I don't get it right, but this looks suspicious. Usually the consumer lookup table is here to attach device specific names to external resources. So what I'd expect here is: struct nvmem_cell_lookup { /* The nvmem device name. */ const char *nvmem_name; /* The nvmem cell name */ const char *nvmem_cell_name; /* * The local resource name. Basically what you have in the * nvmem-cell-names prop. */ const char *conid; }; struct nvmem_cell_lookup_table { struct list_head list; /* ID of the consumer device. */ const char *devid; /* Array of cell lookup entries. */ unsigned int ncells; const struct nvmem_cell_lookup *cells; }; Looks like your nvmem_cell_lookup is more something used to attach cells to an nvmem device, which is NVMEM provider's responsibility not the consumer one. Regards, Boris