Re: dt_binding_check report false alarm?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 06/08/2023 07:57 AM, Rob Herring wrote:
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@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

Thanks Rob!  This works!

+    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



Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux