Re: [PATCH] dt-bindings: Add missing array size constraints

From: Suman Anna
Date: Tue Jan 05 2021 - 18:44:36 EST


On 1/5/21 5:27 PM, Mathieu Poirier wrote:
> Adding Suman and Paul - guys please have a look.
>
> On Mon, Jan 04, 2021 at 04:02:53PM -0700, Rob Herring wrote:
>> DT properties which can have multiple entries need to specify what the
>> entries are and define how many entries there can be. In the case of
>> only a single entry, just 'maxItems: 1' is sufficient.
>>
>> Add the missing entry constraints. These were found with a modified
>> meta-schema. Unfortunately, there are a few cases where the size
>> constraints are not defined such as common bindings, so the meta-schema
>> can't be part of the normal checks.
>>
>> Cc: Jens Axboe <axboe@xxxxxxxxx>
>> Cc: Stephen Boyd <sboyd@xxxxxxxxxx>
>> Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
>> Cc: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
>> Cc: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
>> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
>> Cc: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
>> Cc: Jonathan Cameron <jic23@xxxxxxxxxx>
>> Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
>> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>> Cc: Marc Zyngier <maz@xxxxxxxxxx>
>> Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
>> Cc: Chen-Yu Tsai <wens@xxxxxxxx>
>> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
>> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
>> Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
>> Cc: Sebastian Reichel <sre@xxxxxxxxxx>
>> Cc: Ohad Ben-Cohen <ohad@xxxxxxxxxx>
>> Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
>> ---
>> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>> Cc: linux-ide@xxxxxxxxxxxxxxx
>> Cc: linux-clk@xxxxxxxxxxxxxxx
>> Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
>> Cc: linux-gpio@xxxxxxxxxxxxxxx
>> Cc: linux-iio@xxxxxxxxxxxxxxx
>> Cc: linux-input@xxxxxxxxxxxxxxx
>> Cc: linux-media@xxxxxxxxxxxxxxx
>> Cc: linux-mmc@xxxxxxxxxxxxxxx
>> Cc: netdev@xxxxxxxxxxxxxxx
>> Cc: linux-pm@xxxxxxxxxxxxxxx
>> Cc: linux-remoteproc@xxxxxxxxxxxxxxx
>> Cc: linux-riscv@xxxxxxxxxxxxxxxxxxx
>> Cc: linux-serial@xxxxxxxxxxxxxxx
>> Cc: alsa-devel@xxxxxxxxxxxxxxxx
>> Cc: linux-spi@xxxxxxxxxxxxxxx
>> Cc: linux-usb@xxxxxxxxxxxxxxx
>> ---
>> .../socionext,uniphier-system-cache.yaml | 4 ++--
>> .../bindings/ata/sata_highbank.yaml | 1 +
>> .../bindings/clock/canaan,k210-clk.yaml | 1 +
>> .../bindings/display/brcm,bcm2711-hdmi.yaml | 1 +
>> .../bindings/display/brcm,bcm2835-hdmi.yaml | 1 +
>> .../display/panel/jdi,lt070me05000.yaml | 1 +
>> .../display/panel/mantix,mlaf057we51-x.yaml | 3 ++-
>> .../display/panel/novatek,nt36672a.yaml | 1 +
>> .../devicetree/bindings/dsp/fsl,dsp.yaml | 2 +-
>> .../devicetree/bindings/eeprom/at25.yaml | 3 +--
>> .../bindings/extcon/extcon-ptn5150.yaml | 2 ++
>> .../bindings/gpio/gpio-pca95xx.yaml | 1 +
>> .../bindings/iio/adc/adi,ad7768-1.yaml | 2 ++
>> .../bindings/iio/adc/aspeed,ast2400-adc.yaml | 1 +
>> .../bindings/iio/adc/lltc,ltc2496.yaml | 2 +-
>> .../bindings/iio/adc/qcom,spmi-vadc.yaml | 1 +
>> .../bindings/iio/adc/st,stm32-adc.yaml | 2 ++
>> .../iio/magnetometer/asahi-kasei,ak8975.yaml | 1 +
>> .../iio/potentiometer/adi,ad5272.yaml | 1 +
>> .../input/touchscreen/elan,elants_i2c.yaml | 1 +
>> .../interrupt-controller/fsl,intmux.yaml | 2 +-
>> .../interrupt-controller/st,stm32-exti.yaml | 2 ++
>> .../allwinner,sun4i-a10-video-engine.yaml | 1 +
>> .../devicetree/bindings/media/i2c/imx219.yaml | 1 +
>> .../memory-controllers/exynos-srom.yaml | 2 ++
>> .../bindings/misc/fsl,dpaa2-console.yaml | 1 +
>> .../bindings/mmc/mmc-controller.yaml | 2 ++
>> .../bindings/net/ti,k3-am654-cpsw-nuss.yaml | 1 +
>> .../bindings/net/ti,k3-am654-cpts.yaml | 1 +
>> .../phy/allwinner,sun4i-a10-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun50i-a64-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun50i-h6-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun5i-a13-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun6i-a31-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun8i-a23-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun8i-a83t-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun8i-h3-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun8i-r40-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun8i-v3s-usb-phy.yaml | 2 ++
>> .../phy/allwinner,sun9i-a80-usb-phy.yaml | 19 ++++++++-----------
>> .../phy/socionext,uniphier-ahci-phy.yaml | 2 +-
>> .../phy/socionext,uniphier-pcie-phy.yaml | 2 +-
>> .../phy/socionext,uniphier-usb3hs-phy.yaml | 2 +-
>> .../phy/socionext,uniphier-usb3ss-phy.yaml | 2 +-
>> .../bindings/phy/ti,phy-gmii-sel.yaml | 2 +-
>> .../pinctrl/aspeed,ast2400-pinctrl.yaml | 3 +--
>> .../pinctrl/aspeed,ast2500-pinctrl.yaml | 4 ++--
>> .../bindings/power/supply/bq25980.yaml | 1 +
>> .../bindings/remoteproc/ingenic,vpu.yaml | 2 +-
>> .../remoteproc/ti,omap-remoteproc.yaml | 3 +++
>> .../bindings/riscv/sifive-l2-cache.yaml | 1 +
>> .../bindings/serial/renesas,hscif.yaml | 2 ++
>> .../bindings/serial/renesas,scif.yaml | 2 ++
>> .../bindings/serial/renesas,scifa.yaml | 2 ++
>> .../bindings/serial/renesas,scifb.yaml | 2 ++
>> .../sound/allwinner,sun4i-a10-codec.yaml | 1 +
>> .../bindings/sound/google,sc7180-trogdor.yaml | 1 +
>> .../bindings/sound/samsung,aries-wm8994.yaml | 3 +++
>> .../bindings/sound/samsung,midas-audio.yaml | 2 ++
>> .../devicetree/bindings/sound/tas2562.yaml | 2 ++
>> .../devicetree/bindings/sound/tas2770.yaml | 2 ++
>> .../bindings/sound/tlv320adcx140.yaml | 1 +
>> .../devicetree/bindings/spi/renesas,rspi.yaml | 2 ++
>> .../devicetree/bindings/sram/sram.yaml | 2 ++
>> .../timer/allwinner,sun4i-a10-timer.yaml | 2 ++
>> .../bindings/timer/intel,ixp4xx-timer.yaml | 2 +-
>> .../usb/allwinner,sun4i-a10-musb.yaml | 2 +-
>> .../bindings/usb/brcm,usb-pinmap.yaml | 3 +++
>> .../devicetree/bindings/usb/generic-ehci.yaml | 1 +
>> .../devicetree/bindings/usb/generic-ohci.yaml | 1 +
>> .../devicetree/bindings/usb/ingenic,musb.yaml | 2 +-
>> .../bindings/usb/renesas,usbhs.yaml | 1 +
>> .../devicetree/bindings/usb/ti,j721e-usb.yaml | 3 ++-
>> .../bindings/usb/ti,keystone-dwc3.yaml | 2 ++
>> 74 files changed, 118 insertions(+), 33 deletions(-)
>>

[snip]

>>
>> diff --git a/Documentation/devicetree/bindings/remoteproc/ingenic,vpu.yaml b/Documentation/devicetree/bindings/remoteproc/ingenic,vpu.yaml
>> index c019f9fbe916..d0aa91bbf5e5 100644
>> --- a/Documentation/devicetree/bindings/remoteproc/ingenic,vpu.yaml
>> +++ b/Documentation/devicetree/bindings/remoteproc/ingenic,vpu.yaml
>> @@ -44,7 +44,7 @@ properties:
>> - const: vpu
>>
>> interrupts:
>> - description: VPU hardware interrupt
>> + maxItems: 1
>>
>> required:
>> - compatible
>> diff --git a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
>> index 084960a8f17a..1a1159097a2a 100644
>> --- a/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
>> +++ b/Documentation/devicetree/bindings/remoteproc/ti,omap-remoteproc.yaml
>> @@ -70,10 +70,13 @@ properties:
>> the firmware image.
>>
>> clocks:
>> + maxItems: 1
>> description: |
>> Main functional clock for the remote processor
>>
>> resets:
>> + minItems: 1
>> + maxItems: 2

While this works for passing the schema, if we want to be specifically accurate
between the different remoteprocs, the DSPs will have 1 items while the IPUs
should have 2 items.

I can submit an incremental update if that's ok. Otherwise, for this file,

Reviewed-by: Suman Anna <s-anna@xxxxxx>


>> description: |
>> Reset handles for the remote processor
>>

[snip]

regards
Suman