dt_binding_check report false alarm?
Rob Herring
robh at kernel.org
Thu Jun 8 07:57:42 PDT 2023
On Wed, May 24, 2023 at 10:02:41PM -0700, William Zhang wrote:
> Hi,
>
> It seems dt_binding_check reports a false error when run on this
> modified yaml. I picked this simple file just to demostrate this issue.
> Basically I made the interrupts and interrupt-names as optional
> properties. But when there are two interrupts present, then
> interrupt-names are required. However in the example, I don't define
> interrupts and interrupt-name at all, the dt binding check reports error
> that interrupt-names are required:
>
> make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/crypto/fsl-imx-scc.yaml
> LINT Documentation/devicetree/bindings
> CHKDT Documentation/devicetree/bindings/processed-schema.json
> SCHEMA Documentation/devicetree/bindings/processed-schema.json
> DTEX Documentation/devicetree/bindings/crypto/fsl-imx-scc.example.dts
> DTC_CHK Documentation/devicetree/bindings/crypto/fsl-imx-scc.example.dtb
> Documentation/devicetree/bindings/crypto/fsl-imx-scc.example.dtb: crypto at 53fac000: 'interrupt-names' is a required property
> From schema: /home/william/projects/linux/Documentation/devicetree/bindings/crypto/fsl-imx-scc.yaml
>
> This does not make sense to me as name is required only when there are
> two interrupts. Can someone familar with this please help to check if I
> miss anything in the yaml file or it is indeed a bug in binding check?
>
> Thanks,
> William
>
> ---
> .../devicetree/bindings/crypto/fsl-imx-scc.yaml | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/crypto/fsl-imx-scc.yaml b/Documentation/devicetree/bindings/crypto/fsl-imx-scc.yaml
> index 563a31605d2b..c37a3a64a78c 100644
> --- a/Documentation/devicetree/bindings/crypto/fsl-imx-scc.yaml
> +++ b/Documentation/devicetree/bindings/crypto/fsl-imx-scc.yaml
> @@ -32,11 +32,18 @@ properties:
> clock-names:
> const: ipg
>
> +allOf:
> + - if:
> + properties:
> + interrupts:
> + minItems: 2
This is a quirk of json-schema in that the 'if' will be true if the
property is not present. Adding this to the 'if' should fix the problem:
required:
- interrupts
> + then:
> + required:
> + - interrupt-names
> +
> required:
> - compatible
> - reg
> - - interrupts
> - - interrupt-names
> - clocks
> - clock-names
>
> @@ -49,6 +56,4 @@ examples:
> reg = <0x53fac000 0x4000>;
> clocks = <&clks 111>;
> clock-names = "ipg";
> - interrupts = <49>, <50>;
> - interrupt-names = "scm", "smn";
> };
> --
> 2.34.1
>
More information about the linux-arm-kernel
mailing list