[PATCH] dt-bindings: Drop redundant minItems/maxItems

Rob Herring robh at kernel.org
Thu Jun 17 15:16:50 PDT 2021


On Thu, Jun 17, 2021 at 10:06 AM Suman Anna <s-anna at ti.com> wrote:
>
> Hi Rob,
>
> On 6/15/21 2:15 PM, Rob Herring wrote:
> > 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.
> >
> > This condition is partially checked with the meta-schema already, but
> > only if both 'minItems' and 'maxItems' are equal to the 'items' length.
> > An improved meta-schema is pending.
> >
> > Cc: Jens Axboe <axboe at kernel.dk>
> > Cc: Stephen Boyd <sboyd at kernel.org>
> > Cc: Herbert Xu <herbert at gondor.apana.org.au>
> > Cc: "David S. Miller" <davem at davemloft.net>
> > Cc: David Airlie <airlied at linux.ie>
> > Cc: Daniel Vetter <daniel at ffwll.ch>
> > Cc: Vinod Koul <vkoul at kernel.org>
> > Cc: Bartosz Golaszewski <bgolaszewski at baylibre.com>
> > Cc: Kamal Dasu <kdasu.kdev at gmail.com>
> > Cc: Jonathan Cameron <jic23 at kernel.org>
> > Cc: Lars-Peter Clausen <lars at metafoo.de>
> > Cc: Thomas Gleixner <tglx at linutronix.de>
> > Cc: Marc Zyngier <maz at kernel.org>
> > Cc: Joerg Roedel <joro at 8bytes.org>
> > Cc: Jassi Brar <jassisinghbrar at gmail.com>
> > Cc: Mauro Carvalho Chehab <mchehab at kernel.org>
> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski at canonical.com>
> > Cc: Ulf Hansson <ulf.hansson at linaro.org>
> > Cc: Jakub Kicinski <kuba at kernel.org>
> > Cc: Wolfgang Grandegger <wg at grandegger.com>
> > Cc: Marc Kleine-Budde <mkl at pengutronix.de>
> > Cc: Andrew Lunn <andrew at lunn.ch>
> > Cc: Vivien Didelot <vivien.didelot at gmail.com>
> > Cc: Vladimir Oltean <olteanv at gmail.com>
> > Cc: Bjorn Helgaas <bhelgaas at google.com>
> > Cc: Kishon Vijay Abraham I <kishon at ti.com>
> > Cc: Linus Walleij <linus.walleij at linaro.org>
> > Cc: "Uwe Kleine-König" <u.kleine-koenig at pengutronix.de>
> > Cc: Lee Jones <lee.jones at linaro.org>
> > Cc: Ohad Ben-Cohen <ohad at wizery.com>
> > Cc: Mathieu Poirier <mathieu.poirier at linaro.org>
> > Cc: Philipp Zabel <p.zabel at pengutronix.de>
> > Cc: Paul Walmsley <paul.walmsley at sifive.com>
> > Cc: Palmer Dabbelt <palmer at dabbelt.com>
> > Cc: Albert Ou <aou at eecs.berkeley.edu>
> > Cc: Alessandro Zummo <a.zummo at towertech.it>
> > Cc: Alexandre Belloni <alexandre.belloni at bootlin.com>
> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > Cc: Mark Brown <broonie at kernel.org>
> > Cc: Zhang Rui <rui.zhang at intel.com>
> > Cc: Daniel Lezcano <daniel.lezcano at linaro.org>
> > Cc: Wim Van Sebroeck <wim at linux-watchdog.org>
> > Cc: Guenter Roeck <linux at roeck-us.net>
> > Signed-off-by: Rob Herring <robh at kernel.org>
> > ---
> >  .../devicetree/bindings/ata/nvidia,tegra-ahci.yaml          | 1 -
> >  .../devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml  | 2 --
> >  .../devicetree/bindings/clock/qcom,gcc-apq8064.yaml         | 1 -
> >  Documentation/devicetree/bindings/clock/qcom,gcc-sdx55.yaml | 2 --
> >  .../devicetree/bindings/clock/qcom,gcc-sm8350.yaml          | 2 --
> >  .../devicetree/bindings/clock/sprd,sc9863a-clk.yaml         | 1 -
> >  .../devicetree/bindings/crypto/allwinner,sun8i-ce.yaml      | 2 --
> >  Documentation/devicetree/bindings/crypto/fsl-dcp.yaml       | 1 -
> >  .../display/allwinner,sun4i-a10-display-backend.yaml        | 6 ------
> >  .../bindings/display/allwinner,sun6i-a31-mipi-dsi.yaml      | 1 -
> >  .../bindings/display/allwinner,sun8i-a83t-dw-hdmi.yaml      | 4 ----
> >  .../bindings/display/allwinner,sun8i-a83t-hdmi-phy.yaml     | 2 --
> >  .../bindings/display/allwinner,sun8i-r40-tcon-top.yaml      | 2 --
> >  .../devicetree/bindings/display/bridge/cdns,mhdp8546.yaml   | 2 --
> >  .../bindings/display/rockchip/rockchip,dw-hdmi.yaml         | 2 --
> >  Documentation/devicetree/bindings/display/st,stm32-dsi.yaml | 2 --
> >  .../devicetree/bindings/display/st,stm32-ltdc.yaml          | 1 -
> >  .../devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.yaml | 4 ----
> >  .../devicetree/bindings/dma/renesas,rcar-dmac.yaml          | 1 -
> >  .../devicetree/bindings/edac/amazon,al-mc-edac.yaml         | 2 --
> >  Documentation/devicetree/bindings/eeprom/at24.yaml          | 1 -
> >  Documentation/devicetree/bindings/example-schema.yaml       | 2 --
> >  Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml     | 1 -
> >  Documentation/devicetree/bindings/gpu/vivante,gc.yaml       | 1 -
> >  Documentation/devicetree/bindings/i2c/brcm,brcmstb-i2c.yaml | 1 -
> >  .../devicetree/bindings/i2c/marvell,mv64xxx-i2c.yaml        | 2 --
> >  .../devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml         | 1 -
> >  .../devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml   | 1 -
> >  .../devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml     | 2 --
> >  .../bindings/interrupt-controller/fsl,irqsteer.yaml         | 1 -
> >  .../bindings/interrupt-controller/loongson,liointc.yaml     | 1 -
> >  Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml    | 1 -
> >  .../devicetree/bindings/iommu/renesas,ipmmu-vmsa.yaml       | 1 -
> >  .../devicetree/bindings/mailbox/st,stm32-ipcc.yaml          | 2 --
> >  .../devicetree/bindings/media/amlogic,gx-vdec.yaml          | 1 -
> >  Documentation/devicetree/bindings/media/i2c/adv7604.yaml    | 1 -
> >  .../devicetree/bindings/media/marvell,mmp2-ccic.yaml        | 1 -
> >  .../devicetree/bindings/media/qcom,sc7180-venus.yaml        | 1 -
> >  .../devicetree/bindings/media/qcom,sdm845-venus-v2.yaml     | 1 -
> >  .../devicetree/bindings/media/qcom,sm8250-venus.yaml        | 1 -
> >  Documentation/devicetree/bindings/media/renesas,drif.yaml   | 1 -
> >  .../bindings/memory-controllers/mediatek,smi-common.yaml    | 6 ++----
> >  .../bindings/memory-controllers/mediatek,smi-larb.yaml      | 1 -
> >  .../devicetree/bindings/mmc/allwinner,sun4i-a10-mmc.yaml    | 2 --
> >  Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml    | 1 -
> >  Documentation/devicetree/bindings/mmc/mtk-sd.yaml           | 2 --
> >  Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml     | 2 --
> >  Documentation/devicetree/bindings/mmc/sdhci-am654.yaml      | 1 -
> >  Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml        | 1 -
> >  .../devicetree/bindings/net/amlogic,meson-dwmac.yaml        | 2 --
> >  .../devicetree/bindings/net/brcm,bcm4908-enet.yaml          | 2 --
> >  Documentation/devicetree/bindings/net/can/bosch,m_can.yaml  | 2 --
> >  Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml     | 2 --
> >  Documentation/devicetree/bindings/net/snps,dwmac.yaml       | 2 --
> >  Documentation/devicetree/bindings/net/stm32-dwmac.yaml      | 1 -
> >  Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml    | 2 --
> >  Documentation/devicetree/bindings/pci/loongson.yaml         | 1 -
> >  .../devicetree/bindings/pci/mediatek-pcie-gen3.yaml         | 1 -
> >  .../devicetree/bindings/pci/microchip,pcie-host.yaml        | 2 --
> >  Documentation/devicetree/bindings/perf/arm,cmn.yaml         | 1 -
> >  .../devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml      | 1 -
> >  .../devicetree/bindings/phy/brcm,brcmstb-usb-phy.yaml       | 3 ---
> >  Documentation/devicetree/bindings/phy/brcm,sata-phy.yaml    | 1 -
> >  Documentation/devicetree/bindings/phy/mediatek,tphy.yaml    | 2 --
> >  .../devicetree/bindings/phy/phy-cadence-sierra.yaml         | 2 --
> >  .../devicetree/bindings/phy/phy-cadence-torrent.yaml        | 4 ----
> >  .../devicetree/bindings/phy/qcom,ipq806x-usb-phy-hs.yaml    | 1 -
> >  .../devicetree/bindings/phy/qcom,ipq806x-usb-phy-ss.yaml    | 1 -
> >  Documentation/devicetree/bindings/phy/qcom,qmp-phy.yaml     | 1 -
> >  Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml   | 2 --
> >  Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml | 2 --
> >  Documentation/devicetree/bindings/phy/renesas,usb3-phy.yaml | 1 -
> >  .../devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml   | 1 -
> >  .../devicetree/bindings/power/amlogic,meson-ee-pwrc.yaml    | 1 -
> >  .../devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml    | 1 -
> >  .../devicetree/bindings/remoteproc/st,stm32-rproc.yaml      | 2 --
> >  .../devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml     | 1 -
> >  .../devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml  | 1 -
> >  Documentation/devicetree/bindings/reset/fsl,imx-src.yaml    | 1 -
> >  .../devicetree/bindings/riscv/sifive-l2-cache.yaml          | 1 -
> >  .../devicetree/bindings/rtc/allwinner,sun6i-a31-rtc.yaml    | 1 -
> >  Documentation/devicetree/bindings/rtc/imxdi-rtc.yaml        | 1 -
> >  Documentation/devicetree/bindings/serial/fsl-lpuart.yaml    | 2 --
> >  Documentation/devicetree/bindings/serial/samsung_uart.yaml  | 1 -
> >  .../devicetree/bindings/soc/qcom/qcom,geni-se.yaml          | 1 -
> >  Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml      | 2 --
> >  .../bindings/sound/nvidia,tegra-audio-graph-card.yaml       | 1 -
> >  .../devicetree/bindings/sound/nvidia,tegra210-i2s.yaml      | 2 --
> >  Documentation/devicetree/bindings/sound/st,stm32-sai.yaml   | 3 ---
> >  .../devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml     | 1 -
> >  .../devicetree/bindings/spi/brcm,spi-bcm-qspi.yaml          | 2 --
> >  .../bindings/thermal/allwinner,sun8i-a83t-ths.yaml          | 2 --
> >  Documentation/devicetree/bindings/thermal/qcom-tsens.yaml   | 1 -
> >  .../bindings/timer/allwinner,sun5i-a13-hstimer.yaml         | 1 -
> >  Documentation/devicetree/bindings/timer/arm,arch_timer.yaml | 1 -
> >  .../devicetree/bindings/timer/arm,arch_timer_mmio.yaml      | 2 --
> >  .../devicetree/bindings/timer/intel,ixp4xx-timer.yaml       | 1 -
> >  .../devicetree/bindings/usb/maxim,max3420-udc.yaml          | 2 --
> >  .../devicetree/bindings/usb/nvidia,tegra-xudc.yaml          | 4 ----
> >  Documentation/devicetree/bindings/usb/renesas,usbhs.yaml    | 3 ---
> >  .../devicetree/bindings/watchdog/st,stm32-iwdg.yaml         | 1 -
> >  101 files changed, 2 insertions(+), 163 deletions(-)
> >
>
> [snip]
>
> > diff --git a/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
> > index 6070456a7b67..f399743b631b 100644
> > --- a/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
> > +++ b/Documentation/devicetree/bindings/remoteproc/ti,k3-dsp-rproc.yaml
> > @@ -57,7 +57,6 @@ properties:
> >
> >    memory-region:
> >      minItems: 2
> > -    maxItems: 8
> >      description: |
> >        phandle to the reserved memory nodes to be associated with the remoteproc
> >        device. There should be at least two reserved memory nodes defined. The
>
> Does this enforce the maxItems to be 2 only now? Or should this be dropping the
> minItems here which matches the length of items instead of maxItems?
>
> I have originally listed the individual item list only for the mandatory items
> and rest are scalable. I provided this through "additionalItems: true" under
> this property.

Good catch. This should be dropped. The meta-schema doesn't enforce
this if "additionalItems: true" which is rarely used.

> Also, have the exact same usage in
> Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml as well which
> is not included in this patch.

Yeah, I just missed this one. I've double checked and there aren't any more.

Rob



More information about the linux-riscv mailing list