On Tue, 3 May 2022 at 18:27, Rob Herring <robh@xxxxxxxxxx> wrote: > > Another round of removing redundant minItems/maxItems when 'items' list is > specified. This time it is in if/then schemas as the meta-schema was > failing to check this case. > > If a property has an 'items' list, then a 'minItems' or 'maxItems' with the > same size as the list is redundant and can be dropped. Note that is DT > schema specific behavior and not standard json-schema behavior. The tooling > will fixup the final schema adding any unspecified minItems/maxItems. > > Cc: Abel Vesa <abel.vesa@xxxxxxx> > Cc: Stephen Boyd <sboyd@xxxxxxxxxx> > Cc: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx> > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Cc: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> > Cc: Jonathan Cameron <jic23@xxxxxxxxxx> > Cc: Lars-Peter Clausen <lars@xxxxxxxxxx> > Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > Cc: Thierry Reding <thierry.reding@xxxxxxxxx> > Cc: Jonathan Hunter <jonathanh@xxxxxxxxxx> > Cc: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> > Cc: Richard Weinberger <richard@xxxxxx> > Cc: Vignesh Raghavendra <vigneshr@xxxxxx> > Cc: Wolfgang Grandegger <wg@xxxxxxxxxxxxxx> > Cc: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: Jakub Kicinski <kuba@xxxxxxxxxx> > Cc: Paolo Abeni <pabeni@xxxxxxxxxx> > Cc: Kishon Vijay Abraham I <kishon@xxxxxx> > Cc: Vinod Koul <vkoul@xxxxxxxxxx> > Cc: Alessandro Zummo <a.zummo@xxxxxxxxxxxx> > Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > Cc: Chen-Yu Tsai <wens@xxxxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Mark Brown <broonie@xxxxxxxxxx> > Cc: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> > Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> > Cc: Zhang Rui <rui.zhang@xxxxxxxxx> > Cc: "Niklas Söderlund" <niklas.soderlund@xxxxxxxxxxxx> > Cc: Anson Huang <Anson.Huang@xxxxxxx> > Cc: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx> > Cc: Han Xu <han.xu@xxxxxxx> > Cc: Dario Binacchi <dariobin@xxxxxxxxx> > Cc: Florian Fainelli <f.fainelli@xxxxxxxxx> > Cc: Maxime Ripard <mripard@xxxxxxxxxx> > Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > Cc: linux-clk@xxxxxxxxxxxxxxx > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Cc: linux-iio@xxxxxxxxxxxxxxx > Cc: linux-mmc@xxxxxxxxxxxxxxx > Cc: linux-mtd@xxxxxxxxxxxxxxxxxxx > Cc: linux-can@xxxxxxxxxxxxxxx > Cc: netdev@xxxxxxxxxxxxxxx > Cc: linux-phy@xxxxxxxxxxxxxxxxxxx > Cc: linux-rtc@xxxxxxxxxxxxxxx > Cc: linux-serial@xxxxxxxxxxxxxxx > Cc: alsa-devel@xxxxxxxxxxxxxxxx > Cc: linux-pm@xxxxxxxxxxxxxxx > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> # For MMC Kind regards Uffe > --- > .../bindings/clock/imx8m-clock.yaml | 4 ---- > .../bindings/display/bridge/renesas,lvds.yaml | 4 ---- > .../bindings/display/renesas,du.yaml | 23 ------------------- > .../bindings/iio/adc/st,stm32-adc.yaml | 2 -- > .../bindings/mmc/nvidia,tegra20-sdhci.yaml | 7 +----- > .../devicetree/bindings/mtd/gpmi-nand.yaml | 2 -- > .../bindings/net/can/bosch,c_can.yaml | 3 --- > .../bindings/phy/brcm,sata-phy.yaml | 10 ++++---- > .../bindings/rtc/allwinner,sun6i-a31-rtc.yaml | 10 -------- > .../bindings/serial/samsung_uart.yaml | 4 ---- > .../sound/allwinner,sun4i-a10-i2s.yaml | 1 - > .../bindings/sound/ti,j721e-cpb-audio.yaml | 2 -- > .../bindings/thermal/rcar-gen3-thermal.yaml | 1 - > 13 files changed, 5 insertions(+), 68 deletions(-) > > diff --git a/Documentation/devicetree/bindings/clock/imx8m-clock.yaml b/Documentation/devicetree/bindings/clock/imx8m-clock.yaml > index 625f573a7b90..458c7645ee68 100644 > --- a/Documentation/devicetree/bindings/clock/imx8m-clock.yaml > +++ b/Documentation/devicetree/bindings/clock/imx8m-clock.yaml > @@ -55,8 +55,6 @@ allOf: > then: > properties: > clocks: > - minItems: 7 > - maxItems: 7 > items: > - description: 32k osc > - description: 25m osc > @@ -66,8 +64,6 @@ allOf: > - description: ext3 clock input > - description: ext4 clock input > clock-names: > - minItems: 7 > - maxItems: 7 > items: > - const: ckil > - const: osc_25m > diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml > index a51baf8a4c76..bb9dbfb9beaf 100644 > --- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml > @@ -95,7 +95,6 @@ then: > properties: > clocks: > minItems: 1 > - maxItems: 4 > items: > - description: Functional clock > - description: EXTAL input clock > @@ -104,7 +103,6 @@ then: > > clock-names: > minItems: 1 > - maxItems: 4 > items: > - const: fck > # The LVDS encoder can use the EXTAL or DU_DOTCLKINx clocks. > @@ -128,12 +126,10 @@ then: > else: > properties: > clocks: > - maxItems: 1 > items: > - description: Functional clock > > clock-names: > - maxItems: 1 > items: > - const: fck > > diff --git a/Documentation/devicetree/bindings/display/renesas,du.yaml b/Documentation/devicetree/bindings/display/renesas,du.yaml > index 56cedcd6d576..b3e588022082 100644 > --- a/Documentation/devicetree/bindings/display/renesas,du.yaml > +++ b/Documentation/devicetree/bindings/display/renesas,du.yaml > @@ -109,7 +109,6 @@ allOf: > properties: > clocks: > minItems: 1 > - maxItems: 3 > items: > - description: Functional clock > - description: DU_DOTCLKIN0 input clock > @@ -117,7 +116,6 @@ allOf: > > clock-names: > minItems: 1 > - maxItems: 3 > items: > - const: du.0 > - pattern: '^dclkin\.[01]$' > @@ -159,7 +157,6 @@ allOf: > properties: > clocks: > minItems: 2 > - maxItems: 4 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -168,7 +165,6 @@ allOf: > > clock-names: > minItems: 2 > - maxItems: 4 > items: > - const: du.0 > - const: du.1 > @@ -216,7 +212,6 @@ allOf: > properties: > clocks: > minItems: 2 > - maxItems: 4 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -225,7 +220,6 @@ allOf: > > clock-names: > minItems: 2 > - maxItems: 4 > items: > - const: du.0 > - const: du.1 > @@ -271,7 +265,6 @@ allOf: > properties: > clocks: > minItems: 2 > - maxItems: 4 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -280,7 +273,6 @@ allOf: > > clock-names: > minItems: 2 > - maxItems: 4 > items: > - const: du.0 > - const: du.1 > @@ -327,7 +319,6 @@ allOf: > properties: > clocks: > minItems: 2 > - maxItems: 4 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -336,7 +327,6 @@ allOf: > > clock-names: > minItems: 2 > - maxItems: 4 > items: > - const: du.0 > - const: du.1 > @@ -386,7 +376,6 @@ allOf: > properties: > clocks: > minItems: 3 > - maxItems: 6 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -397,7 +386,6 @@ allOf: > > clock-names: > minItems: 3 > - maxItems: 6 > items: > - const: du.0 > - const: du.1 > @@ -448,7 +436,6 @@ allOf: > properties: > clocks: > minItems: 4 > - maxItems: 8 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -461,7 +448,6 @@ allOf: > > clock-names: > minItems: 4 > - maxItems: 8 > items: > - const: du.0 > - const: du.1 > @@ -525,7 +511,6 @@ allOf: > properties: > clocks: > minItems: 3 > - maxItems: 6 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -536,7 +521,6 @@ allOf: > > clock-names: > minItems: 3 > - maxItems: 6 > items: > - const: du.0 > - const: du.1 > @@ -596,7 +580,6 @@ allOf: > properties: > clocks: > minItems: 3 > - maxItems: 6 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -607,7 +590,6 @@ allOf: > > clock-names: > minItems: 3 > - maxItems: 6 > items: > - const: du.0 > - const: du.1 > @@ -666,14 +648,12 @@ allOf: > properties: > clocks: > minItems: 1 > - maxItems: 2 > items: > - description: Functional clock for DU0 > - description: DU_DOTCLKIN0 input clock > > clock-names: > minItems: 1 > - maxItems: 2 > items: > - const: du.0 > - const: dclkin.0 > @@ -723,7 +703,6 @@ allOf: > properties: > clocks: > minItems: 2 > - maxItems: 4 > items: > - description: Functional clock for DU0 > - description: Functional clock for DU1 > @@ -732,7 +711,6 @@ allOf: > > clock-names: > minItems: 2 > - maxItems: 4 > items: > - const: du.0 > - const: du.1 > @@ -791,7 +769,6 @@ allOf: > - description: Functional clock > > clock-names: > - maxItems: 1 > items: > - const: du.0 > > diff --git a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml > index 4d6074518b5c..fa8da42cb1e6 100644 > --- a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml > +++ b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml > @@ -138,7 +138,6 @@ allOf: > - const: bus > - const: adc > minItems: 1 > - maxItems: 2 > > interrupts: > items: > @@ -170,7 +169,6 @@ allOf: > - const: bus > - const: adc > minItems: 1 > - maxItems: 2 > > interrupts: > items: > diff --git a/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml > index f3f4d5b02744..fe0270207622 100644 > --- a/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml > +++ b/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.yaml > @@ -202,22 +202,17 @@ allOf: > clocks: > items: > - description: module clock > - minItems: 1 > - maxItems: 1 > else: > properties: > clocks: > items: > - description: module clock > - description: timeout clock > - minItems: 2 > - maxItems: 2 > + > clock-names: > items: > - const: sdhci > - const: tmclk > - minItems: 2 > - maxItems: 2 > required: > - clock-names > > diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml > index 9d764e654e1d..849aeae319a9 100644 > --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml > +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.yaml > @@ -147,8 +147,6 @@ allOf: > - description: SoC gpmi io clock > - description: SoC gpmi bch apb clock > clock-names: > - minItems: 2 > - maxItems: 2 > items: > - const: gpmi_io > - const: gpmi_bch_apb > diff --git a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml > index 8bad328b184d..51aa89ac7e85 100644 > --- a/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml > +++ b/Documentation/devicetree/bindings/net/can/bosch,c_can.yaml > @@ -80,8 +80,6 @@ if: > then: > properties: > interrupts: > - minItems: 4 > - maxItems: 4 > items: > - description: Error and status IRQ > - description: Message object IRQ > @@ -91,7 +89,6 @@ then: > else: > properties: > interrupts: > - maxItems: 1 > items: > - description: Error and status IRQ > > diff --git a/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml b/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml > index cb1aa325336f..435b971dfd9b 100644 > --- a/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml > +++ b/Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml > @@ -102,19 +102,17 @@ if: > then: > properties: > reg: > - maxItems: 2 > + minItems: 2 > + > reg-names: > - items: > - - const: "phy" > - - const: "phy-ctrl" > + minItems: 2 > else: > properties: > reg: > maxItems: 1 > + > reg-names: > maxItems: 1 > - items: > - - const: "phy" > > required: > - compatible > diff --git a/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml b/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml > index 0b767fec39d8..6b38bd7eb3b4 100644 > --- a/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml > +++ b/Documentation/devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml > @@ -71,7 +71,6 @@ allOf: > then: > properties: > clock-output-names: > - minItems: 1 > maxItems: 1 > > - if: > @@ -102,7 +101,6 @@ allOf: > properties: > clock-output-names: > minItems: 3 > - maxItems: 3 > > - if: > properties: > @@ -113,16 +111,12 @@ allOf: > then: > properties: > clocks: > - minItems: 3 > - maxItems: 3 > items: > - description: Bus clock for register access > - description: 24 MHz oscillator > - description: 32 kHz clock from the CCU > > clock-names: > - minItems: 3 > - maxItems: 3 > items: > - const: bus > - const: hosc > @@ -142,7 +136,6 @@ allOf: > properties: > clocks: > minItems: 3 > - maxItems: 4 > items: > - description: Bus clock for register access > - description: 24 MHz oscillator > @@ -151,7 +144,6 @@ allOf: > > clock-names: > minItems: 3 > - maxItems: 4 > items: > - const: bus > - const: hosc > @@ -174,14 +166,12 @@ allOf: > then: > properties: > interrupts: > - minItems: 1 > maxItems: 1 > > else: > properties: > interrupts: > minItems: 2 > - maxItems: 2 > > required: > - "#clock-cells" > diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml > index d4688e317fc5..901c1e2cea28 100644 > --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml > +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml > @@ -100,7 +100,6 @@ allOf: > maxItems: 3 > clock-names: > minItems: 2 > - maxItems: 3 > items: > - const: uart > - pattern: '^clk_uart_baud[0-1]$' > @@ -118,11 +117,8 @@ allOf: > then: > properties: > clocks: > - minItems: 2 > maxItems: 2 > clock-names: > - minItems: 2 > - maxItems: 2 > items: > - const: uart > - const: clk_uart_baud0 > diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml > index c21c807b667c..34f6ee9de392 100644 > --- a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml > +++ b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml > @@ -89,7 +89,6 @@ allOf: > properties: > dmas: > minItems: 1 > - maxItems: 2 > items: > - description: RX DMA Channel > - description: TX DMA Channel > diff --git a/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml b/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml > index 6806f53a4aed..20ea5883b7ff 100644 > --- a/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml > +++ b/Documentation/devicetree/bindings/sound/ti,j721e-cpb-audio.yaml > @@ -80,7 +80,6 @@ allOf: > then: > properties: > clocks: > - minItems: 6 > items: > - description: AUXCLK clock for McASP used by CPB audio > - description: Parent for CPB_McASP auxclk (for 48KHz) > @@ -107,7 +106,6 @@ allOf: > then: > properties: > clocks: > - maxItems: 4 > items: > - description: AUXCLK clock for McASP used by CPB audio > - description: Parent for CPB_McASP auxclk (for 48KHz) > diff --git a/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.yaml b/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.yaml > index f963204e0b16..1368d90da0e8 100644 > --- a/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.yaml > +++ b/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.yaml > @@ -67,7 +67,6 @@ then: > properties: > reg: > minItems: 2 > - maxItems: 3 > items: > - description: TSC1 registers > - description: TSC2 registers > -- > 2.34.1 >