Re: [PATCH 3/3] dt-bingings: pinctrl: Convert UniPhier pin controller to json-schema

From: Masahiro Yamada
Date: Fri Feb 28 2020 - 23:13:52 EST


Hi Linus,

On Sat, Feb 29, 2020 at 7:13 AM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
>
> On Fri, Feb 21, 2020 at 3:10 AM Masahiro Yamada
> <yamada.masahiro@xxxxxxxxxxxxx> wrote:
>
> > Convert the UniPhier pin controller binding to DT schema format.
> >
> > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
>
> Nice!
>
> > In the original .txt file, there is a description:
> > The UniPhier pinctrl should be a subnode of a "syscon" compatible node
> >
> > I did not figure out how to represent (or check) it in dt-schema.
> > I just moved it to a comment line in 'examples'.
> > If there is a better way, please let me know.
>
> There is no way to do that AFAICT, we are checking nodes from
> one node and downwards, never upwards. The syscon needs to
> have its own binding file: if it has another specific compatible
> such as compatible = "foo", "syscon"; then for the DT bindings
> for foo, make sure to add this subnode as optional/compulsory
> if you want to tie up the whole thing.


Thanks for your advice.


Documentation/devicetree/bindings/mfd/syscon.yaml

already contains sunxi-specific compatibles, but
I hesitate to add more and more platform-specific stuff
in this file.

Maybe, I can add

Documentation/devicetree/bindings/mfd/socionext,uniphier-soc-glue.yaml

and then, check 'reg' and compulsory sub-nodes.



> > -Required properties:
> > -- compatible: should be one of the following:
> > - "socionext,uniphier-ld4-pinctrl" - for LD4 SoC
> > - "socionext,uniphier-pro4-pinctrl" - for Pro4 SoC
> > - "socionext,uniphier-sld8-pinctrl" - for sLD8 SoC
> > - "socionext,uniphier-pro5-pinctrl" - for Pro5 SoC
> > - "socionext,uniphier-pxs2-pinctrl" - for PXs2 SoC
> > - "socionext,uniphier-ld6b-pinctrl" - for LD6b SoC
> > - "socionext,uniphier-ld11-pinctrl" - for LD11 SoC
> > - "socionext,uniphier-ld20-pinctrl" - for LD20 SoC
> > - "socionext,uniphier-pxs3-pinctrl" - for PXs3 SoC
>
> But:
>
> > + soc-glue@5f800000 {
> > + compatible = "socionext,uniphier-pro4-soc-glue", "simple-mfd", "syscon";
> > + reg = <0x5f800000 0x2000>;
> > +
> > + pinctrl: pinctrl {
> > + compatible = "socionext,uniphier-pro4-pinctrl";
> > + };
> > + };
>
> It looks like you want to check also for "simple-mfd" and "syscon"
> following after the enum (two consts)
>
> It seems you want to check that reg is there.


Documentation/devicetree/bindings/mfd/syscon.yaml

already checks the 'reg' by the 'contains syscon' pattern,
but I can repeat it in my yaml file.

Thanks.


> It seems the subnode pinctrl is also compulsory.
>
> All of this have examples in example-schema.yaml IIRC.
>
> Yours,
> Linus Walleij



--
Best Regards
Masahiro Yamada