From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 576A2C77B7A for ; Thu, 25 May 2023 17:30:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XCJnhMEkEWNFME7vGmIm1deugANHFx3dKk9klG525k4=; b=X36hj9eWw2syVM 6XGG8FeaSyniw2hn+OIIgz2e5nd04aMJcssalFw+xz3HmWDfyAo+/crrzLeQfe9YYLl1E+JCnQnc5 z7PLUlIqh2FGKerWIF56WpuhlZCgikla6e9s1ilWpNZBHmyQZdQm8Z0mPgq7XY/FCF34qHv6uaerw oOb3G86PZiCElwWD4D4TqiJHGzLxeTnAMaUdqtmqHCibHOKAtiJFn5dm94+/KGh1XjrBndeiyqHjf KfJE06bSsExsV8M2Y90gTbEihhG15Ka0IyAiY2VT2IAXOzBAOse0V0LFiwC40XTDUiYM4llYhbxUT y7zXTP0j3NtVEr7sUqJA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q2Emg-00HFQI-1M; Thu, 25 May 2023 17:29:54 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q2Emc-00HFPg-0h for linux-arm-kernel@lists.infradead.org; Thu, 25 May 2023 17:29:52 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ADD591042; Thu, 25 May 2023 10:30:29 -0700 (PDT) Received: from [10.1.196.40] (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A93E43F6C4; Thu, 25 May 2023 10:29:43 -0700 (PDT) Message-ID: <1c2b2819-e464-1884-fd73-7e3580bb4fc1@arm.com> Date: Thu, 25 May 2023 18:29:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: dt_binding_check report false alarm? Content-Language: en-GB To: William Zhang , Conor Dooley Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, f.fainelli@gmail.com, Krzysztof Kozlowski , Rob Herring References: <20230525050241.3700-1-william.zhang@broadcom.com> <20230525-wrench-lushness-f9a1ad022798@wendy> <00604ffd-ccb3-e640-5457-1fa1ed663d26@broadcom.com> From: Robin Murphy In-Reply-To: <00604ffd-ccb3-e640-5457-1fa1ed663d26@broadcom.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230525_102950_349141_6DBA2F44 X-CRM114-Status: GOOD ( 25.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjUvMDUvMjAyMyA0OjIzIHBtLCBXaWxsaWFtIFpoYW5nIHdyb3RlOgo+IFNvcnJ5IGZvciB0 aGUgbXVsdGlwbGUgZW1haWxzLiBPdXIgbWFpbCByZWxheSBzZXJ2ZXIgd2FzIG5vdCB3b3JraW5n IAo+IHByb3Blcmx5Lgo+IAo+IEhpIENvbm9yLAo+IAo+IE9uIDA1LzI1LzIwMjMgMDY6MjMgQU0s IENvbm9yIERvb2xleSB3cm90ZToKPj4gSGV5IFdpbGxpYW0sCj4+Cj4+IE9uIFdlZCwgTWF5IDI0 LCAyMDIzIGF0IDEwOjAyOjQxUE0gLTA3MDAsIFdpbGxpYW0gWmhhbmcgd3JvdGU6Cj4+PiBIaSwK Pj4+Cj4+PiBJdCBzZWVtcyBkdF9iaW5kaW5nX2NoZWNrIHJlcG9ydHMgYSBmYWxzZSBlcnJvciB3 aGVuIHJ1biBvbiB0aGlzCj4+PiBtb2RpZmllZCB5YW1sLiBJIHBpY2tlZCB0aGlzIHNpbXBsZSBm aWxlIGp1c3QgdG8gZGVtb3N0cmF0ZSB0aGlzIGlzc3VlLgo+Pj4gQmFzaWNhbGx5IEkgbWFkZSB0 aGUgaW50ZXJydXB0cyBhbmQgaW50ZXJydXB0LW5hbWVzIGFzIG9wdGlvbmFsCj4+PiBwcm9wZXJ0 aWVzLiBCdXQgd2hlbiB0aGVyZSBhcmUgdHdvIGludGVycnVwdHMgcHJlc2VudCwgdGhlbgo+Pj4g aW50ZXJydXB0LW5hbWVzIGFyZSByZXF1aXJlZC7CoCBIb3dldmVyIGluIHRoZSBleGFtcGxlLCBJ IGRvbid0IGRlZmluZQo+Pj4gaW50ZXJydXB0cyBhbmQgaW50ZXJydXB0LW5hbWUgYXQgYWxsLCB0 aGUgZHQgYmluZGluZyBjaGVjayByZXBvcnRzIGVycm9yCj4+PiB0aGF0IGludGVycnVwdC1uYW1l cyBhcmUgcmVxdWlyZWQ6Cj4+Cj4+IFJvYiBhbmQgS3J6eXN6dG9mIHdvdWxkIGtub3cgbW9yZSB0 aGFuIG1lLCBidXQgc2luY2UgdGhleSdyZSBub3QKPj4gYXJvdW5kLi4uCj4+Cj4+PiBkaWZmIC0t Z2l0IAo+Pj4gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRvL2ZzbC1p bXgtc2NjLnlhbWwgCj4+PiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jcnlw dG8vZnNsLWlteC1zY2MueWFtbAo+Pj4gaW5kZXggNTYzYTMxNjA1ZDJiLi5jMzdhM2E2NGE3OGMg MTAwNjQ0Cj4+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY3J5cHRv L2ZzbC1pbXgtc2NjLnlhbWwKPj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9jcnlwdG8vZnNsLWlteC1zY2MueWFtbAo+Pj4gQEAgLTMyLDExICszMiwxOCBAQCBwcm9w ZXJ0aWVzOgo+Pj4gwqDCoMKgIGNsb2NrLW5hbWVzOgo+Pj4gwqDCoMKgwqDCoCBjb25zdDogaXBn Cj4+PiArYWxsT2Y6Cj4+PiArwqAgLSBpZjoKPj4+ICvCoMKgwqDCoMKgIHByb3BlcnRpZXM6Cj4+ PiArwqDCoMKgwqDCoMKgwqAgaW50ZXJydXB0czoKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqAgbWlu SXRlbXM6IDIKPj4KPj4gLi4uSSBkb24ndCB0aGluayB5b3UgY2FuIGFjdHVhbGx5IGRvIHRoaXMg YW5kICJtaW5JdGVtczogMiIgd2lsbCBhbHdheXMKPj4gZXZhbHVhdGUgdG8gdHJ1ZSBiZWNhdXNl IGl0IGlzIGFuIGFzc2lnbm1lbnQuIERvbid0IGhvbGQgbWUgdG8gdGhhdAo+PiB0aG91Z2ghIFRo ZSBzdGFuZGFyZCBwYXR0ZXJuIGhlcmUgaXMgdG8gZG86Cj4+IGFsbE9mOgo+PiDCoMKgIC0gaWY6 Cj4+IMKgwqDCoMKgwqDCoCBwcm9wZXJ0aWVzOgo+PiDCoMKgwqDCoMKgwqDCoMKgIGNvbXBhdGli bGU6Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRhaW5zOgo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgY29uc3Q6IGZvbwo+PiDCoMKgwqDCoCB0aGVuOgo+PiDCoMKgwqDCoMKgwqAgcmVx dWlyZWQ6Cj4+IMKgwqDCoMKgwqDCoMKgwqAgLSBpbnRlcnJ1cHQtbmFtZXMKPj4KPj4gQ2hlZXJz LAo+PiBDb25vci4KPj4KPiBPdXIgZGV2aWNlIGNhbiB1c2Ugb25lIG9yIHR3byBpbnRlcnJ1cHQs IG9yIGNob29zZSB0byBub3QgdXNlIGludGVycnVwdCAKPiBhdCBhbGwocG9sbGluZyBtb2RlKS4g SW50ZXJydXB0IG5hbWVzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGVyZSBhcmUgCj4gdHdvIGlu dGVycnVwdHMoc28gdGhlIGRyaXZlciBjb2RlIGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoKS7CoCBT byBJIHdpbGwgCj4gbmVlZCB0byBjaGVjayBpZiBpdCBjb250YWlucyB0d28gaW50ZXJydXB0cy4g TXkgY2hlY2sgZG9lcyB3b3JrIGlmIEkgCj4gaGF2ZSB0d28gaW50ZXJydXB0IGJ1dCBkb24ndCBo YXZlIGludGVycnVwdCBuYW1lLCB0aGUgY2hlY2sgY2F0Y2hlcyB0aGUgCj4gZXJyb3IuwqAgSWYg SSBoYXZlIG9uZSBpbnRlcnJ1cHQgd2l0aG91dCBpbnRlcnJ1cHQgbmFtZSwgdGhlIGNoZWNrIHBh c3MuIAo+IE9ubHkgd2hlbiBJIGRvZXMgbm90IGhhdmUgaW50ZXJydXB0IGFuZCBpbnRlcnJ1cHQg bmFtZSzCoCBpdCBmYWxzZWx5IAo+IHJlcG9ydCBlcnJvci7CoCBMb29rcyB0byBtZSB0aGF0IGl0 IGRvZXMgbm90IHRyZWF0IG1pbkl0ZW0gPSAwIGNhc2UgCj4gcHJvcGVybHkuCgpOb3RlIHRoYXQg bWluSXRlbXMgPSAwIGlzICpub3QqIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eSBiZWluZyBhYnNl bnQgCih0aGF0IHdvdWxkIHJlcHJlc2VudCBhbiBlbXB0eSBwcm9wZXJ0eSwgaS5lLiBqdXN0ICJp bnRlcnJ1cHRzOyIpCgpUaGUgY29uZGl0aW9uYWwgc2NoZW1hIGZyYWdtZW50IG9ubHkgc2F5cyB0 aGF0IGFuICJpbnRlcnJ1cHRzIiBwcm9wZXJ0eSAKbXVzdCBoYXZlIGF0IGxlYXN0IHR3byBlbnRy aWVzIGluIG9yZGVyIHRvIG1hdGNoLiBIb3dldmVyIGl0IGRvZXNuJ3Qgc2F5IAp0aGF0IHRoZSBw cm9wZXJ0eSBpcyByZXF1aXJlZCwgYW5kIHRodXMgdGhlIGV4YW1wbGUgRFQgKHdpdGhvdXQgdGhl IApwcm9wZXJ0eSkgZG9lcyBub3QgZmFpbCB0byBtYXRjaCB0aGUgY29uc3RyYWludHMgb2YgdGhl IGdpdmVuIHNjaGVtYSwgCmFuZCB0aHVzIHRoZSBjb25kaXRpb24gZW5kcyB1cCB0cnVlLgoKSXQg Y2VydGFpbmx5IHRvb2sgbWUgc2V2ZXJhbCBnb2VzIHRvIGdldCBteSBoZWFkIHJvdW5kIGhvdyBj b25kaXRpb25hbHMgCndvcmssIGFuZCB0aGUgbm90aW9uIHRoYXQgd2hhdCBnb2VzIHVuZGVyIHRo ZSAiaWY6IiBpcyBhIHNjaGVtYSAKZGVmaW5pdGlvbiBpbiBpdHMgb3duIHJpZ2h0IDopCgpSb2Jp bi4KCj4gCj4gCj4+PiArwqDCoMKgIHRoZW46Cj4+PiArwqDCoMKgwqDCoCByZXF1aXJlZDoKPj4+ ICvCoMKgwqDCoMKgwqDCoCAtIGludGVycnVwdC1uYW1lcwo+Pj4gKwo+Pj4gwqAgcmVxdWlyZWQ6 Cj4+PiDCoMKgwqAgLSBjb21wYXRpYmxlCj4+PiDCoMKgwqAgLSByZWcKPj4+IC3CoCAtIGludGVy cnVwdHMKPj4+IC3CoCAtIGludGVycnVwdC1uYW1lcwo+Pj4gwqDCoMKgIC0gY2xvY2tzCj4+PiDC oMKgwqAgLSBjbG9jay1uYW1lcwo+Pj4gQEAgLTQ5LDYgKzU2LDQgQEAgZXhhbXBsZXM6Cj4+PiDC oMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDB4NTNmYWMwMDAgMHg0MDAwPjsKPj4+IMKgwqDCoMKg wqDCoMKgwqDCoCBjbG9ja3MgPSA8JmNsa3MgMTExPjsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBj bG9jay1uYW1lcyA9ICJpcGciOwo+Pj4gLcKgwqDCoMKgwqDCoMKgIGludGVycnVwdHMgPSA8NDk+ LCA8NTA+Owo+Pj4gLcKgwqDCoMKgwqDCoMKgIGludGVycnVwdC1uYW1lcyA9ICJzY20iLCAic21u IjsKPj4+IMKgwqDCoMKgwqAgfTsKPj4+IC0tIAo+Pj4gMi4zNC4xCj4+Pgo+Pgo+Pgo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00AFDC77B7A for ; Thu, 25 May 2023 17:29:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241160AbjEYR34 (ORCPT ); Thu, 25 May 2023 13:29:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240264AbjEYR3q (ORCPT ); Thu, 25 May 2023 13:29:46 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 103D49B for ; Thu, 25 May 2023 10:29:45 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ADD591042; Thu, 25 May 2023 10:30:29 -0700 (PDT) Received: from [10.1.196.40] (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A93E43F6C4; Thu, 25 May 2023 10:29:43 -0700 (PDT) Message-ID: <1c2b2819-e464-1884-fd73-7e3580bb4fc1@arm.com> Date: Thu, 25 May 2023 18:29:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: dt_binding_check report false alarm? Content-Language: en-GB To: William Zhang , Conor Dooley Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, f.fainelli@gmail.com, Krzysztof Kozlowski , Rob Herring References: <20230525050241.3700-1-william.zhang@broadcom.com> <20230525-wrench-lushness-f9a1ad022798@wendy> <00604ffd-ccb3-e640-5457-1fa1ed663d26@broadcom.com> From: Robin Murphy In-Reply-To: <00604ffd-ccb3-e640-5457-1fa1ed663d26@broadcom.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On 25/05/2023 4:23 pm, William Zhang wrote: > Sorry for the multiple emails. Our mail relay server was not working > properly. > > Hi Conor, > > On 05/25/2023 06:23 AM, Conor Dooley wrote: >> Hey William, >> >> 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: >> >> Rob and Krzysztof would know more than me, but since they're not >> around... >> >>> 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 >> >> ...I don't think you can actually do this and "minItems: 2" will always >> evaluate to true because it is an assignment. Don't hold me to that >> though! The standard pattern here is to do: >> allOf: >>    - if: >>        properties: >>          compatible: >>            contains: >>              const: foo >>      then: >>        required: >>          - interrupt-names >> >> Cheers, >> Conor. >> > Our device can use one or two interrupt, or choose to not use interrupt > at all(polling mode). Interrupt names is only required when there are > two interrupts(so the driver code can tell which is which).  So I will > need to check if it contains two interrupts. My check does work if I > have two interrupt but don't have interrupt name, the check catches the > error.  If I have one interrupt without interrupt name, the check pass. > Only when I does not have interrupt and interrupt name,  it falsely > report error.  Looks to me that it does not treat minItem = 0 case > properly. Note that minItems = 0 is *not* the same as the property being absent (that would represent an empty property, i.e. just "interrupts;") The conditional schema fragment only says that an "interrupts" property must have at least two entries in order to match. However it doesn't say that the property is required, and thus the example DT (without the property) does not fail to match the constraints of the given schema, and thus the condition ends up true. It certainly took me several goes to get my head round how conditionals work, and the notion that what goes under the "if:" is a schema definition in its own right :) Robin. > > >>> +    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 >>> >> >> > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel