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

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

From: Suman Anna <hidden>
Date: 2021-06-17 16:08:59
Also in: alsa-devel, dmaengine, dri-devel, linux-can, 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-serial, linux-spi, linux-usb, linux-watchdog, lkml, netdev

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@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 hunk ↗ jump to hunk
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.

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.
quoted hunk ↗ jump to hunk
diff --git a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
index 73400bc6e91d..75161f191ac3 100644
--- a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
@@ -116,7 +116,6 @@ properties:
       list, in the specified order, each representing the corresponding
       internal RAM memory region.
     minItems: 1
-    maxItems: 3
     items:
       - const: l2ram
       - const: l1pram

[snip]
quoted hunk ↗ jump to hunk
diff --git a/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml b/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
index dbc62821c60b..9790617af1bc 100644
--- a/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
+++ b/Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
@@ -100,7 +100,6 @@ patternProperties:
     properties:
       reg:
         minItems: 2 # On AM437x one of two PRUSS units don't contain Shared RAM.
-        maxItems: 3
         items:
           - description: Address and size of the Data RAM0.
           - description: Address and size of the Data RAM1.
@@ -111,7 +110,6 @@ patternProperties:
 
       reg-names:
         minItems: 2
-        maxItems: 3
         items:
           - const: dram0
           - const: dram1

regards
Suman
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help