[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