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: 2This 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