RE: [EXT] Re: [PATCH] dt-bindings: spi: Convert Freescale DSPI to json schema

From: Kuldeep Singh
Date: Tue Mar 16 2021 - 02:10:45 EST


Hi Vladimir,

> -----Original Message-----
> From: Vladimir Oltean <olteanv@xxxxxxxxx>
> Sent: Tuesday, March 16, 2021 2:25 AM
> To: Kuldeep Singh <kuldeep.singh@xxxxxxx>
> Cc: linux-spi@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; Mark Brown <broonie@xxxxxxxxxx>; Rob Herring
> <robh+dt@xxxxxxxxxx>
> Subject: [EXT] Re: [PATCH] dt-bindings: spi: Convert Freescale DSPI to json schema
>
> Caution: EXT Email
>
> Hi Kuldeep,
>
> On Mon, Mar 15, 2021 at 05:45:18PM +0530, Kuldeep Singh wrote:
> > Convert the Freescale DSPI binding to DT schema format using json-schema.
> >
> > Signed-off-by: Kuldeep Singh <kuldeep.singh@xxxxxxx>
> > ---
[...]
> > +
> > +allOf:
> > + - $ref: "spi-controller.yaml#"
> > +
> > +properties:
> > + compatible:
> > + oneOf:
> > + - enum:
> > + - fsl,vf610-dspi
> > + - fsl,ls1021a-v1.0-dspi
> > + - fsl,ls1028a-dspi
> > + - fsl,ls2085a-dspi
> > + - fsl,lx2160a-dspi
> > + - items:
> > + - enum:
> > + - fsl,ls1012a-dspi
> > + - fsl,ls1028a-dspi
> > + - fsl,ls1043a-dspi
> > + - fsl,ls1046a-dspi
> > + - fsl,ls1088a-dspi
> > + - const: fsl,ls1021a-v1.0-dspi
> > + - items:
> > + - enum:
> > + - fsl,ls2080a-dspi
> > + - fsl,lx2160a-dspi
> > + - const: fsl,ls2085a-dspi
>
> Can this simply be:
> compatible:
> oneOf:
> - enum:
> - fsl,vf610-dspi
> - fsl,ls1021a-v1.0-dspi
> - fsl,ls1012a-dspi
> - fsl,ls1028a-dspi
> - fsl,ls1043a-dspi
> - fsl,ls1046a-dspi
> - fsl,ls1088a-dspi
> - fsl,ls2080a-dspi
> - fsl,ls2085a-dspi
> - fsl,lx2160a-dspi
> ?

Compatible entries in conjugation require enum and const pair.
For example, ls1012a.dtsi uses compatible = "fsl,ls1012a-dspi","fsl,ls1021a-v1.0-dspi";
Same goes for LS1028 as well.

Therefore, can't mention the compatible entry as single entity otherwise
it may fail "make dt_binding_check" and "make dtbs_check".

>
> > +examples:
> > + - |
> > + #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
> > + #include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > + soc {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > +
> > + spi@2100000 {
> > + compatible = "fsl,ls1028a-dspi", "fsl,ls1021a-v1.0-dspi";
>
> This doesn't need the "fsl,ls1021a-v1.0-dspi" compatible, can you please remove
> it?

I have taken this example from LS1028a.dtsi and it uses these compatibles in conjugation.
If "fsl,ls1021a-v1.0-dspi" is not required, then it should also be removed from device-tree
As well as from bindings both.

>
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + reg = <0x0 0x2100000 0x0 0x10000>;
> > + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> > + clock-names = "dspi";
> > + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
> QORIQ_CLK_PLL_DIV(2)>;
> > + dmas = <&edma0 0 62>, <&edma0 0 60>;
> > + dma-names = "tx", "rx";
> > + spi-num-chipselects = <4>;
> > + little-endian;
> > +
> > + flash@0 {
> > + compatible = "jedec,spi-nor";
> > + spi-max-frequency = <10000000>;
> > + reg = <0>;
> > + };
> > + };
> > + };
>
> (...)
>
> > -Optional property:
> > -- big-endian: If present the dspi device's registers are implemented
> > - in big endian mode.
>
> I don't see "big-endian" being covered in any common yaml, could you please not
> delete it? The driver calls of_device_is_big_endian.

Thanks for mentioning.
Will consider this in next version after receiving feedback on other thread.

Regards
Kuldeep