> -----Original Message----- > From: Serge Semin <fancer.lancer@xxxxxxxxx> > Sent: Friday, December 22, 2023 10:51 PM > To: Swee, Leong Ching <leong.ching.swee@xxxxxxxxx> > Cc: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>; Alexandre Torgue > <alexandre.torgue@xxxxxxxxxxx>; Jose Abreu <joabreu@xxxxxxxxxxxx>; > David S . Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet > <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni > <pabeni@xxxxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>; Krzysztof > Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx>; Conor Dooley > <conor+dt@xxxxxxxxxx>; Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>; > linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx; linux-arm- > kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; G Thomas, Rohan > <rohan.g.thomas@xxxxxxxxx> > Subject: Re: [PATCH net-next v1 1/4] dt-bindings: net: snps,dwmac: per > channel irq > > On Fri, Dec 22, 2023 at 01:44:48PM +0800, Leong Ching Swee wrote: > > From: Swee Leong Ching <leong.ching.swee@xxxxxxxxx> > > > > Add dt-bindings for per channel irq. > > > > Signed-off-by: Rohan G Thomas <rohan.g.thomas@xxxxxxxxx> > > Signed-off-by: Swee Leong Ching <leong.ching.swee@xxxxxxxxx> > > --- > > .../devicetree/bindings/net/snps,dwmac.yaml | 24 +++++++++++++------ > > 1 file changed, 17 insertions(+), 7 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > index 5c2769dc689a..e72dded824f4 100644 > > --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml > > @@ -103,17 +103,27 @@ properties: > > > > interrupts: > > minItems: 1 > > - items: > > - - description: Combined signal for various interrupt events > > - - description: The interrupt to manage the remote wake-up packet > detection > > - - description: The interrupt that occurs when Rx exits the LPI state > > + maxItems: 19 > > > > interrupt-names: > > minItems: 1 > > + maxItems: 19 > > items: > > - - const: macirq > > - - enum: [eth_wake_irq, eth_lpi] > > - - const: eth_lpi > > + oneOf: > > + - description: Combined signal for various interrupt events > > + const: macirq > > + - description: The interrupt to manage the remote wake-up packet > detection > > + const: eth_wake_irq > > + - description: The interrupt that occurs when Rx exits the LPI state > > + const: eth_lpi > > + - description: DMA Tx per-channel interrupt > > + pattern: '^dma_tx[0-7]?$' > > + - description: DMA Rx per-channel interrupt > > + pattern: '^dma_rx[0-7]?$' > > + > > > + allOf: > > + - contains: > > + const: macirq > > As Rob correctly noted it's also better to make sure that 'macirq' is placed first > in the array. So instead of the constraint above I guess the next one would > make sure both the array has 'macirq' name and it's the first item: > > allOf: > - maxItems: 34 > items: > - const: macirq > > -Serge(y) > interrupt-names: minItems: 1 maxItems: 19 items: oneOf: - description: Combined signal for various interrupt events const: macirq - description: The interrupt to manage the remote wake-up packet detection const: eth_wake_irq - description: The interrupt that occurs when Rx exits the LPI state const: eth_lpi - description: DMA Tx per-channel interrupt pattern: '^dma_tx[0-7]?$' - description: DMA Rx per-channel interrupt pattern: '^dma_rx[0-7]?$' allOf: - maxItems: 19 items: - const: macirq I am getting the warning/error below when I tried the changes above (but it does make sure macirq is placed first). Removing maxItems create other error, did I miss anything? /home/swiplab/build/jim/linux/net-next/Documentation/devicetree/bindings/net/snps,dwmac.yaml: properties:interrupt-names:allOf:0: {'maxItems': 19, 'items': [{'const': 'macirq'}]} should not be valid under {'required': ['maxItems']} hint: "maxItems" is not needed with an "items" list from schema $id: http://devicetree.org/meta-schemas/items.yaml# /home/swiplab/build/jim/linux/net-next/Documentation/devicetree/bindings/net/snps,dwmac.yaml: properties:interrupt-names:allOf:0: {'maxItems': 19, 'items': [{'const': 'macirq'}]} should not be valid under {'required': ['maxItems']} hint: "maxItems" is not needed with an "items" list > > > > clocks: > > minItems: 1 > > -- > > 2.34.1 > > > >