Re: [PATCH 1/4] dt-bindings: syscon: Add syscon endian properties support

From: Sergey Semin
Date: Fri Mar 13 2020 - 08:27:28 EST


On Thu, Mar 12, 2020 at 04:11:02PM -0500, Rob Herring wrote:
> On Fri, Mar 06, 2020 at 04:03:38PM +0300, Sergey.Semin@xxxxxxxxxxxxxxxxxxxx wrote:
> > From: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
> >
> > In accordance with the syscon-driver (drivers/mfd/syscon.c) the syscon
> > dts-nodes may accept endian properties of the boolean type: little-endian,
> > big-endian, native-endian. Lets make sure that syscon bindings json-schema
> > also supports them.
> >
> > Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Alexey Malahov <Alexey.Malahov@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
> > Cc: Paul Burton <paulburton@xxxxxxxxxx>
> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
> > ---
> > Documentation/devicetree/bindings/mfd/syscon.yaml | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/mfd/syscon.yaml b/Documentation/devicetree/bindings/mfd/syscon.yaml
> > index 39375e4313d2..9ee404991533 100644
> > --- a/Documentation/devicetree/bindings/mfd/syscon.yaml
> > +++ b/Documentation/devicetree/bindings/mfd/syscon.yaml
> > @@ -61,6 +61,11 @@ properties:
> > description:
> > Reference to a phandle of a hardware spinlock provider node.
> >
> > +patternProperties:
> > + "^(big|little|native)-endian$":
> > + $ref: /schemas/types.yaml#/definitions/flag
> > + description: Bytes order of the system controller memory space.
>
> Common properties should have a type definition in a common schema. For
> this one, I'd like it in the core schema in dtschema.

So what do you suggest then? Will you move this file to the dt-scheme/schemas
in your repo? What shall I do with this patch, just drop? Or would you like me
to fork your dt-schema repo, add dt-schemas/schemas/mfd/syscon.yaml file similar
to this one with "*-endian" property supported, then pull-request or
send a patch with the alteration back to your repo?

>
> I'd expect for any specific 'syscon', either none or only a subset of
> these are valid, so I don't think this should be added here.

AFAIU mfd/syscon.yaml describes a generic syscon compatible with generic
driver drivers/mfd/syscon.c, which may have any of these properties
declared in its dt-node. We can't predict which one because, well, it's
generic. At the same time, yes, only a subset of these properties can be
supported by a specific system controller, which one can be determined
by the controller specific dt schema. So if we left the property here in
the generic syscon.yaml, then the controller dt-schema would have had a
pattern like:

>
> allOf:
> - $ref: ../../mfd/syscon.yaml#
>
> properties:
> little-endian: true
>
> additionalProperties: false
>

as I did for soc/baikal-t1/be,bt1-l2-ctl.yaml. See the patch: "dt-bindings:
Add Baikal-T1 L2-cache Control Block dts bindings file" in the corresponding
patchset in your email Inbox.

Regards,
-Sergey

>
> Rob