dt_binding_check report false alarm?

William Zhang william.zhang at broadcom.com
Thu Jun 8 16:00:16 PDT 2023



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 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
> 
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
>>
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4212 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20230608/7cdb833a/attachment-0001.p7s>


More information about the linux-arm-kernel mailing list