On Fri, 3 Mar 2017 13:37:44 +0100 Boris Brezillon wrote: > On Fri, 3 Mar 2017 13:17:05 +0100 > Alban wrote: > > > On Thu, 2 Mar 2017 21:22:20 +0100 > > Boris Brezillon wrote: > > > > > On Thu, 2 Mar 2017 20:50:21 +0100 > > > Alban wrote: > > > > > > > Add the binding to expose MTD partitions as nvmem providers. > > > > > > Looks good. Maybe you should take the case you describe in your > > > cover-letter into account and add an extra layer: add an nvmem sub-node > > > containing the nvmem cells, so that you can expose nvmem cells directly > > > under master MTD devices (and not only partitions). > > > > I think that would be the better solution. This can be done > > independently, once we agree on a binding we just have to fix > > of_nvmem_cell_get(). My suggestion would be to have the new binding > > looking like this: > > > > nvmem-device@10 { > > ... > > nvmem-provider; > > nvmem-cells { > > compatible = "nvmem-cells"; > > #address-cells = <1>; > > #size-cells = <1>; > > > > nvmem-cell@100 { > > label = "mac-address"; > > reg = <0x100 0x200>; > > } > > > > ... > > } > > } > > > > I would also suggest making the "nvmem-provider" property mandatory > > to indicate that the device provides this capability. Up to now all > > nvmem providers only support this API but I think there might be more > > multi function devices in the future. > > If you enforce the name of the child node (here nvmem-cells), you don't > need this extra nvmem-provider property. Am I missing something? That property would define the capability to be used as nvmem-provider, furthermore it would cover the case where no cell is defined. Also in the case of MTD devices it would avoid an ambiguity when there is no 'partitions' sub node, as then the nvmem-cells node could be interpreted as a partition following the old binding. From what I understand most of such "implicit" binding have sooner or later proved to be too limited, or worth, clashing with another one. They then had to be deprecated and replaced by explicit ones. The MTD partitions binding is a good example of such evolution. Alban