Thread (15 messages) 15 messages, 13 authors, 2021-06-22

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

From: Rob Herring <robh@kernel.org>
Date: 2021-06-17 22:17:56
Also in: alsa-devel, dmaengine, dri-devel, linux-clk, linux-crypto, linux-devicetree, linux-gpio, linux-i2c, linux-ide, linux-iio, linux-iommu, linux-media, linux-mmc, linux-pci, linux-phy, linux-pm, linux-pwm, linux-remoteproc, linux-riscv, linux-rtc, linux-serial, linux-spi, linux-usb, linux-watchdog, lkml, netdev

On Thu, Jun 17, 2021 at 10:06 AM Suman Anna [off-list ref] wrote:
Hi Rob,

On 6/15/21 2:15 PM, Rob Herring wrote:
quoted
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@kernel.dk>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: David Airlie <redacted>
Cc: Daniel Vetter <redacted>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: Bartosz Golaszewski <redacted>
Cc: Kamal Dasu <redacted>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Thomas Gleixner <redacted>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Krzysztof Kozlowski <redacted>
Cc: Ulf Hansson <redacted>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Wolfgang Grandegger <redacted>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Vivien Didelot <redacted>
Cc: Vladimir Oltean <olteanv@gmail.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Kishon Vijay Abraham I <redacted>
Cc: Linus Walleij <redacted>
Cc: "Uwe Kleine-König" <redacted>
Cc: Lee Jones <redacted>
Cc: Ohad Ben-Cohen <redacted>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Paul Walmsley <redacted>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alessandro Zummo <redacted>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Daniel Lezcano <redacted>
Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Rob Herring <robh@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]
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help