Re: [PATCH 1/3] doc: bindings: Add bindings documentation for mtd nvmem

From: Alban
Date: Fri Mar 03 2017 - 08:14:13 EST


On Fri, 3 Mar 2017 13:37:44 +0100
Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote:

> On Fri, 3 Mar 2017 13:17:05 +0100
> Alban <albeu@xxxxxxx> wrote:
>
> > On Thu, 2 Mar 2017 21:22:20 +0100
> > Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > > On Thu, 2 Mar 2017 20:50:21 +0100
> > > Alban <albeu@xxxxxxx> 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

Attachment: pgp__pFebDRcC.pgp
Description: OpenPGP digital signature