Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Cc: Herbert Xu herbert@gondor.apana.org.au Cc: "David S. Miller" davem@davemloft.net Cc: Maxime Ripard mripard@kernel.org Cc: Chen-Yu Tsai wens@csie.org Cc: Eric Anholt eric@anholt.net Cc: Nicolas Saenz Julienne nsaenzjulienne@suse.de Cc: Florian Fainelli f.fainelli@gmail.com Cc: Ray Jui rjui@broadcom.com Cc: Scott Branden sbranden@broadcom.com Cc: Pavel Machek pavel@ucw.cz Cc: Ulf Hansson ulf.hansson@linaro.org Cc: Kishon Vijay Abraham I kishon@ti.com Cc: Vinod Koul vkoul@kernel.org Cc: Geert Uytterhoeven geert+renesas@glider.be Cc: Linus Walleij linus.walleij@linaro.org Cc: Daniel Lezcano daniel.lezcano@linaro.org Cc: linux-crypto@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-leds@vger.kernel.org Cc: linux-mmc@vger.kernel.org Cc: linux-gpio@vger.kernel.org Signed-off-by: Rob Herring robh@kernel.org --- .../devicetree/bindings/crypto/allwinner,sun8i-ce.yaml | 3 +-- .../devicetree/bindings/display/brcm,bcm2835-hvs.yaml | 2 +- Documentation/devicetree/bindings/leds/ti,tca6507.yaml | 1 + Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml | 2 +- Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml | 3 +-- .../devicetree/bindings/phy/renesas,usb2-phy.yaml | 5 ++--- .../devicetree/bindings/pinctrl/renesas,pfc.yaml | 9 ++++----- .../bindings/timer/allwinner,sun5i-a13-hstimer.yaml | 3 +-- 8 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml index 7a60d84289cc..6ab07eba7778 100644 --- a/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml +++ b/Documentation/devicetree/bindings/crypto/allwinner,sun8i-ce.yaml @@ -46,8 +46,7 @@ properties: if: properties: compatible: - items: - const: allwinner,sun50i-h6-crypto + const: allwinner,sun50i-h6-crypto then: properties: clocks: diff --git a/Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml b/Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml index e826ab0adb75..2e8566f47e63 100644 --- a/Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml +++ b/Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml @@ -36,7 +36,7 @@ if: properties: compatible: contains: - const: brcm,bcm2711-hvs" + const: brcm,bcm2711-hvs
then: required: diff --git a/Documentation/devicetree/bindings/leds/ti,tca6507.yaml b/Documentation/devicetree/bindings/leds/ti,tca6507.yaml index 94c307c98762..32c600387895 100644 --- a/Documentation/devicetree/bindings/leds/ti,tca6507.yaml +++ b/Documentation/devicetree/bindings/leds/ti,tca6507.yaml @@ -69,6 +69,7 @@ patternProperties: if: patternProperties: "^gpio@[0-6]$": + type: object properties: compatible: contains: diff --git a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml index 6bbf29b5c239..6c13703b31db 100644 --- a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml +++ b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml @@ -123,7 +123,7 @@ required: if: properties: compatible: - items: + contains: enum: - renesas,sdhi-r7s72100 - renesas,sdhi-r7s9210 diff --git a/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml b/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml index 58c3ef8004ad..04edda504ab6 100644 --- a/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml +++ b/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml @@ -99,8 +99,7 @@ patternProperties: if: properties: compatible: - items: - const: brcm,iproc-ns2-sata-phy + const: brcm,iproc-ns2-sata-phy then: properties: reg: diff --git a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml index 829e8c7e467a..0f358d5b84ef 100644 --- a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml +++ b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml @@ -81,9 +81,8 @@ properties: if: properties: compatible: - items: - enum: - - renesas,usb2-phy-r7s9210 + contains: + const: renesas,usb2-phy-r7s9210 then: required: - clock-names diff --git a/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml b/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml index 5b5b1b9d2ec7..5d3947902f2d 100644 --- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml @@ -76,11 +76,10 @@ required: if: properties: compatible: - items: - enum: - - renesas,pfc-r8a73a4 - - renesas,pfc-r8a7740 - - renesas,pfc-sh73a0 + enum: + - renesas,pfc-r8a73a4 + - renesas,pfc-r8a7740 + - renesas,pfc-sh73a0 then: required: - interrupts-extended diff --git a/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.yaml b/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.yaml index 40fc4bcb3145..b6a6d03a08b2 100644 --- a/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.yaml +++ b/Documentation/devicetree/bindings/timer/allwinner,sun5i-a13-hstimer.yaml @@ -46,8 +46,7 @@ required: if: properties: compatible: - items: - const: allwinner,sun5i-a13-hstimer + const: allwinner,sun5i-a13-hstimer
then: properties:
Hi Rob,
On Tue, Feb 2, 2021 at 9:55 PM Rob Herring robh@kernel.org wrote:
Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Signed-off-by: Rob Herring robh@kernel.org
Thanks for your patch!
--- a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml +++ b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml @@ -81,9 +81,8 @@ properties: if: properties: compatible:
items:
enum:
- renesas,usb2-phy-r7s9210
contains:
const: renesas,usb2-phy-r7s9210
Single entry, so "contains" not needed?
--- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml @@ -76,11 +76,10 @@ required: if: properties: compatible:
items:
enum:
- renesas,pfc-r8a73a4
- renesas,pfc-r8a7740
- renesas,pfc-sh73a0
enum:
- renesas,pfc-r8a73a4
- renesas,pfc-r8a7740
- renesas,pfc-sh73a0
Missing "contains"?
Gr{oetje,eeting}s,
Geert
On Wed, Feb 03, 2021 at 09:01:23AM +0100, Geert Uytterhoeven wrote:
Hi Rob,
On Tue, Feb 2, 2021 at 9:55 PM Rob Herring robh@kernel.org wrote:
Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Signed-off-by: Rob Herring robh@kernel.org
Thanks for your patch!
--- a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml +++ b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml @@ -81,9 +81,8 @@ properties: if: properties: compatible:
items:
enum:
- renesas,usb2-phy-r7s9210
contains:
const: renesas,usb2-phy-r7s9210
Single entry, so "contains" not needed?
No, you are misunderstanding how these work. 'contains' means at least one entry in an array passes with the subschema. In this case, 'renesas,usb2-phy-r7s9210' must appear somewhere in the 'compatible' values. (Before, it said *every* entry must be 'renesas,usb2-phy-r7s9210'.) As there is a fallback compatible, we need 'contains'.
--- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml @@ -76,11 +76,10 @@ required: if: properties: compatible:
items:
enum:
- renesas,pfc-r8a73a4
- renesas,pfc-r8a7740
- renesas,pfc-sh73a0
enum:
- renesas,pfc-r8a73a4
- renesas,pfc-r8a7740
- renesas,pfc-sh73a0
Missing "contains"?
No. In this case, 'compatible' is always a single entry, so no 'contains' needed (but would work). If compatible is one of these 3 strings, then the 'if' is true.
The original way would actually work in this case (i.e. is valid json-schema), but we require 'items' to have a size (maxItems/minItems) in our meta-schema.
Rob
Hi Rob,
On Wed, Feb 3, 2021 at 4:55 PM Rob Herring robh@kernel.org wrote:
On Wed, Feb 03, 2021 at 09:01:23AM +0100, Geert Uytterhoeven wrote:
On Tue, Feb 2, 2021 at 9:55 PM Rob Herring robh@kernel.org wrote:
Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Signed-off-by: Rob Herring robh@kernel.org
Thanks for your patch!
--- a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml +++ b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml @@ -81,9 +81,8 @@ properties: if: properties: compatible:
items:
enum:
- renesas,usb2-phy-r7s9210
contains:
const: renesas,usb2-phy-r7s9210
Single entry, so "contains" not needed?
No, you are misunderstanding how these work. 'contains' means at least one entry in an array passes with the subschema. In this case, 'renesas,usb2-phy-r7s9210' must appear somewhere in the 'compatible' values. (Before, it said *every* entry must be 'renesas,usb2-phy-r7s9210'.) As there is a fallback compatible, we need 'contains'.
--- a/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml +++ b/Documentation/devicetree/bindings/pinctrl/renesas,pfc.yaml @@ -76,11 +76,10 @@ required: if: properties: compatible:
items:
enum:
- renesas,pfc-r8a73a4
- renesas,pfc-r8a7740
- renesas,pfc-sh73a0
enum:
- renesas,pfc-r8a73a4
- renesas,pfc-r8a7740
- renesas,pfc-sh73a0
Missing "contains"?
No. In this case, 'compatible' is always a single entry, so no 'contains' needed (but would work). If compatible is one of these 3 strings, then the 'if' is true.
The original way would actually work in this case (i.e. is valid json-schema), but we require 'items' to have a size (maxItems/minItems) in our meta-schema.
Thanks for the explanation! Acked-by: Geert Uytterhoeven geert+renesas@glider.be
Gr{oetje,eeting}s,
Geert
On Tue, Feb 02, 2021 at 02:55:44PM -0600, Rob Herring wrote:
Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Cc: Herbert Xu herbert@gondor.apana.org.au Cc: "David S. Miller" davem@davemloft.net Cc: Maxime Ripard mripard@kernel.org Cc: Chen-Yu Tsai wens@csie.org Cc: Eric Anholt eric@anholt.net Cc: Nicolas Saenz Julienne nsaenzjulienne@suse.de Cc: Florian Fainelli f.fainelli@gmail.com Cc: Ray Jui rjui@broadcom.com Cc: Scott Branden sbranden@broadcom.com Cc: Pavel Machek pavel@ucw.cz Cc: Ulf Hansson ulf.hansson@linaro.org Cc: Kishon Vijay Abraham I kishon@ti.com Cc: Vinod Koul vkoul@kernel.org Cc: Geert Uytterhoeven geert+renesas@glider.be Cc: Linus Walleij linus.walleij@linaro.org Cc: Daniel Lezcano daniel.lezcano@linaro.org Cc: linux-crypto@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-leds@vger.kernel.org Cc: linux-mmc@vger.kernel.org Cc: linux-gpio@vger.kernel.org Signed-off-by: Rob Herring robh@kernel.org
Acked-by: Maxime Ripard mripard@kernel.org
Maxime
On 02-02-21, 14:55, Rob Herring wrote:
Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Cc: Herbert Xu herbert@gondor.apana.org.au Cc: "David S. Miller" davem@davemloft.net Cc: Maxime Ripard mripard@kernel.org Cc: Chen-Yu Tsai wens@csie.org Cc: Eric Anholt eric@anholt.net Cc: Nicolas Saenz Julienne nsaenzjulienne@suse.de Cc: Florian Fainelli f.fainelli@gmail.com Cc: Ray Jui rjui@broadcom.com Cc: Scott Branden sbranden@broadcom.com Cc: Pavel Machek pavel@ucw.cz Cc: Ulf Hansson ulf.hansson@linaro.org Cc: Kishon Vijay Abraham I kishon@ti.com Cc: Vinod Koul vkoul@kernel.org Cc: Geert Uytterhoeven geert+renesas@glider.be Cc: Linus Walleij linus.walleij@linaro.org Cc: Daniel Lezcano daniel.lezcano@linaro.org Cc: linux-crypto@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-leds@vger.kernel.org Cc: linux-mmc@vger.kernel.org Cc: linux-gpio@vger.kernel.org Signed-off-by: Rob Herring robh@kernel.org
.../devicetree/bindings/crypto/allwinner,sun8i-ce.yaml | 3 +-- .../devicetree/bindings/display/brcm,bcm2835-hvs.yaml | 2 +- Documentation/devicetree/bindings/leds/ti,tca6507.yaml | 1 + Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml | 2 +- Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml | 3 +-- .../devicetree/bindings/phy/renesas,usb2-phy.yaml | 5 ++---
For phy:
Acked-By: Vinod Koul vkoul@kernel.org
On Tue, 2021-02-02 at 14:55 -0600, Rob Herring wrote:
Properties in if/then schemas weren't getting checked by the meta-schemas. Enabling meta-schema checks finds several errors.
The use of an 'items' schema (as opposed to the list form) is wrong in some cases as it applies to all entries. 'contains' is the correct schema to use in the case of multiple entries.
Cc: Herbert Xu herbert@gondor.apana.org.au Cc: "David S. Miller" davem@davemloft.net Cc: Maxime Ripard mripard@kernel.org Cc: Chen-Yu Tsai wens@csie.org Cc: Eric Anholt eric@anholt.net Cc: Nicolas Saenz Julienne nsaenzjulienne@suse.de Cc: Florian Fainelli f.fainelli@gmail.com Cc: Ray Jui rjui@broadcom.com Cc: Scott Branden sbranden@broadcom.com Cc: Pavel Machek pavel@ucw.cz Cc: Ulf Hansson ulf.hansson@linaro.org Cc: Kishon Vijay Abraham I kishon@ti.com Cc: Vinod Koul vkoul@kernel.org Cc: Geert Uytterhoeven geert+renesas@glider.be Cc: Linus Walleij linus.walleij@linaro.org Cc: Daniel Lezcano daniel.lezcano@linaro.org Cc: linux-crypto@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: linux-leds@vger.kernel.org Cc: linux-mmc@vger.kernel.org Cc: linux-gpio@vger.kernel.org Signed-off-by: Rob Herring robh@kernel.org
Reviewed-by: Nicolas Saenz Julienne nsaenzjulienne@suse.de
dri-devel@lists.freedesktop.org