[PATCH] dt-bindings: Drop redundant minItems/maxItems
Suman Anna
s-anna at ti.com
Thu Jun 17 09:05:59 PDT 2021
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.
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.
> 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]
> 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
More information about the linux-riscv
mailing list