diff mbox series

[v2,13/19] dt-bindings: nvmem: imx-ocotp: Update i.MX 8M compatibles

Message ID 20200824162652.21047-13-krzk@kernel.org
State Changes Requested
Headers show
Series [v2,01/19] dt-bindings: gpio: fsl-imx-gpio: Add i.MX 8 compatibles | expand

Commit Message

Krzysztof Kozlowski Aug. 24, 2020, 4:26 p.m. UTC
DTSes with new i.MX 8M SoCs use two compatibles so update the binding to
fix dtbs_check warnings like:

  arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000: compatible:1: 'syscon' was expected
    From schema: Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml

  arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
    compatible: ['fsl,imx8mn-ocotp', 'fsl,imx8mm-ocotp', 'syscon'] is too long

  arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
    compatible: Additional items are not allowed ('syscon' was unexpected)

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
 .../devicetree/bindings/nvmem/imx-ocotp.yaml  | 39 ++++++++++++-------
 1 file changed, 24 insertions(+), 15 deletions(-)

Comments

Rob Herring (Arm) Aug. 25, 2020, 2:39 a.m. UTC | #1
On Mon, Aug 24, 2020 at 06:26:46PM +0200, Krzysztof Kozlowski wrote:
> DTSes with new i.MX 8M SoCs use two compatibles so update the binding to
> fix dtbs_check warnings like:
> 
>   arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000: compatible:1: 'syscon' was expected
>     From schema: Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> 
>   arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
>     compatible: ['fsl,imx8mn-ocotp', 'fsl,imx8mm-ocotp', 'syscon'] is too long
> 
>   arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
>     compatible: Additional items are not allowed ('syscon' was unexpected)
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
>  .../devicetree/bindings/nvmem/imx-ocotp.yaml  | 39 ++++++++++++-------
>  1 file changed, 24 insertions(+), 15 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> index 1c9d7f05f173..b5b250185afd 100644
> --- a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> +++ b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> @@ -19,21 +19,30 @@ allOf:
>  
>  properties:
>    compatible:
> -    items:
> -      - enum:
> -          - fsl,imx6q-ocotp
> -          - fsl,imx6sl-ocotp
> -          - fsl,imx6sx-ocotp
> -          - fsl,imx6ul-ocotp
> -          - fsl,imx6ull-ocotp
> -          - fsl,imx7d-ocotp
> -          - fsl,imx6sll-ocotp
> -          - fsl,imx7ulp-ocotp
> -          - fsl,imx8mq-ocotp
> -          - fsl,imx8mm-ocotp
> -          - fsl,imx8mn-ocotp
> -          - fsl,imx8mp-ocotp
> -      - const: syscon
> +    oneOf:
> +      - items:
> +          - enum:
> +              - fsl,imx6q-ocotp
> +              - fsl,imx6sl-ocotp
> +              - fsl,imx6sx-ocotp
> +              - fsl,imx6ul-ocotp
> +              - fsl,imx6ull-ocotp
> +              - fsl,imx7d-ocotp
> +              - fsl,imx6sll-ocotp
> +              - fsl,imx7ulp-ocotp
> +              - fsl,imx8mq-ocotp
> +              - fsl,imx8mm-ocotp

> +              - fsl,imx8mn-ocotp
> +              - fsl,imx8mp-ocotp

Should be dropped.

> +          - const: syscon
> +      - items:
> +          # The devices are not really compatible with fsl,imx8mm-ocotp, however
> +          # the code for getting SoC revision depends on fsl,imx8mm-ocotp compatible.
> +          - enum:
> +              - fsl,imx8mn-ocotp
> +              - fsl,imx8mp-ocotp
> +          - const: fsl,imx8mm-ocotp
> +          - const: syscon
>  
>    reg:
>      maxItems: 1
> -- 
> 2.17.1
>
Sascha Hauer Aug. 25, 2020, 4:46 a.m. UTC | #2
On Mon, Aug 24, 2020 at 06:26:46PM +0200, Krzysztof Kozlowski wrote:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - fsl,imx6q-ocotp
> +              - fsl,imx6sl-ocotp
> +              - fsl,imx6sx-ocotp
> +              - fsl,imx6ul-ocotp
> +              - fsl,imx6ull-ocotp
> +              - fsl,imx7d-ocotp
> +              - fsl,imx6sll-ocotp
> +              - fsl,imx7ulp-ocotp
> +              - fsl,imx8mq-ocotp
> +              - fsl,imx8mm-ocotp
> +              - fsl,imx8mn-ocotp
> +              - fsl,imx8mp-ocotp
> +          - const: syscon
> +      - items:
> +          # The devices are not really compatible with fsl,imx8mm-ocotp, however
> +          # the code for getting SoC revision depends on fsl,imx8mm-ocotp compatible.

Shouldn't this be fixed? It seems strange to justify a binding with
existing code.

Sascha

> +          - enum:
> +              - fsl,imx8mn-ocotp
> +              - fsl,imx8mp-ocotp
> +          - const: fsl,imx8mm-ocotp
> +          - const: syscon
>  
>    reg:
>      maxItems: 1
> -- 
> 2.17.1
> 
>
Krzysztof Kozlowski Aug. 25, 2020, 7:17 a.m. UTC | #3
On Tue, Aug 25, 2020 at 06:46:53AM +0200, Sascha Hauer wrote:
> On Mon, Aug 24, 2020 at 06:26:46PM +0200, Krzysztof Kozlowski wrote:
> > +    oneOf:
> > +      - items:
> > +          - enum:
> > +              - fsl,imx6q-ocotp
> > +              - fsl,imx6sl-ocotp
> > +              - fsl,imx6sx-ocotp
> > +              - fsl,imx6ul-ocotp
> > +              - fsl,imx6ull-ocotp
> > +              - fsl,imx7d-ocotp
> > +              - fsl,imx6sll-ocotp
> > +              - fsl,imx7ulp-ocotp
> > +              - fsl,imx8mq-ocotp
> > +              - fsl,imx8mm-ocotp
> > +              - fsl,imx8mn-ocotp
> > +              - fsl,imx8mp-ocotp
> > +          - const: syscon
> > +      - items:
> > +          # The devices are not really compatible with fsl,imx8mm-ocotp, however
> > +          # the code for getting SoC revision depends on fsl,imx8mm-ocotp compatible.
> 
> Shouldn't this be fixed? It seems strange to justify a binding with
> existing code.

The fsl,imx8mn-ocotp is actually compatible with "mm", only the
fsl,imx8mp-ocotp is not (although someone might argue that subset of
"mp" falls into "mn").

The problem is that drivers/soc/imx/soc-imx8m.c checks revision only
against the fsl,imx8mm-ocotp compatible, not the others. It's the
pattern used in that driver also for other i.MX 8. Therefore it is a
binding implemented and actually used, regardless whether it is correct
from hardware point of view or not.

If that's preferred, I could adjust the drivers/soc/imx/soc-imx8m.c for
the incompatible "mp". It should not break anything.

Best regards,
Krzysztof
Krzysztof Kozlowski Aug. 25, 2020, 7:19 a.m. UTC | #4
On Mon, Aug 24, 2020 at 08:39:04PM -0600, Rob Herring wrote:
> On Mon, Aug 24, 2020 at 06:26:46PM +0200, Krzysztof Kozlowski wrote:
> > DTSes with new i.MX 8M SoCs use two compatibles so update the binding to
> > fix dtbs_check warnings like:
> > 
> >   arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000: compatible:1: 'syscon' was expected
> >     From schema: Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> > 
> >   arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
> >     compatible: ['fsl,imx8mn-ocotp', 'fsl,imx8mm-ocotp', 'syscon'] is too long
> > 
> >   arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
> >     compatible: Additional items are not allowed ('syscon' was unexpected)
> > 
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > ---
> >  .../devicetree/bindings/nvmem/imx-ocotp.yaml  | 39 ++++++++++++-------
> >  1 file changed, 24 insertions(+), 15 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> > index 1c9d7f05f173..b5b250185afd 100644
> > --- a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> > +++ b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
> > @@ -19,21 +19,30 @@ allOf:
> >  
> >  properties:
> >    compatible:
> > -    items:
> > -      - enum:
> > -          - fsl,imx6q-ocotp
> > -          - fsl,imx6sl-ocotp
> > -          - fsl,imx6sx-ocotp
> > -          - fsl,imx6ul-ocotp
> > -          - fsl,imx6ull-ocotp
> > -          - fsl,imx7d-ocotp
> > -          - fsl,imx6sll-ocotp
> > -          - fsl,imx7ulp-ocotp
> > -          - fsl,imx8mq-ocotp
> > -          - fsl,imx8mm-ocotp
> > -          - fsl,imx8mn-ocotp
> > -          - fsl,imx8mp-ocotp
> > -      - const: syscon
> > +    oneOf:
> > +      - items:
> > +          - enum:
> > +              - fsl,imx6q-ocotp
> > +              - fsl,imx6sl-ocotp
> > +              - fsl,imx6sx-ocotp
> > +              - fsl,imx6ul-ocotp
> > +              - fsl,imx6ull-ocotp
> > +              - fsl,imx7d-ocotp
> > +              - fsl,imx6sll-ocotp
> > +              - fsl,imx7ulp-ocotp
> > +              - fsl,imx8mq-ocotp
> > +              - fsl,imx8mm-ocotp
> 
> > +              - fsl,imx8mn-ocotp
> > +              - fsl,imx8mp-ocotp
> 
> Should be dropped.

OK

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
index 1c9d7f05f173..b5b250185afd 100644
--- a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
+++ b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
@@ -19,21 +19,30 @@  allOf:
 
 properties:
   compatible:
-    items:
-      - enum:
-          - fsl,imx6q-ocotp
-          - fsl,imx6sl-ocotp
-          - fsl,imx6sx-ocotp
-          - fsl,imx6ul-ocotp
-          - fsl,imx6ull-ocotp
-          - fsl,imx7d-ocotp
-          - fsl,imx6sll-ocotp
-          - fsl,imx7ulp-ocotp
-          - fsl,imx8mq-ocotp
-          - fsl,imx8mm-ocotp
-          - fsl,imx8mn-ocotp
-          - fsl,imx8mp-ocotp
-      - const: syscon
+    oneOf:
+      - items:
+          - enum:
+              - fsl,imx6q-ocotp
+              - fsl,imx6sl-ocotp
+              - fsl,imx6sx-ocotp
+              - fsl,imx6ul-ocotp
+              - fsl,imx6ull-ocotp
+              - fsl,imx7d-ocotp
+              - fsl,imx6sll-ocotp
+              - fsl,imx7ulp-ocotp
+              - fsl,imx8mq-ocotp
+              - fsl,imx8mm-ocotp
+              - fsl,imx8mn-ocotp
+              - fsl,imx8mp-ocotp
+          - const: syscon
+      - items:
+          # The devices are not really compatible with fsl,imx8mm-ocotp, however
+          # the code for getting SoC revision depends on fsl,imx8mm-ocotp compatible.
+          - enum:
+              - fsl,imx8mn-ocotp
+              - fsl,imx8mp-ocotp
+          - const: fsl,imx8mm-ocotp
+          - const: syscon
 
   reg:
     maxItems: 1