From: Rafał Miłecki <rafal@xxxxxxxxxx> 1. DMA and EDU are mutually exclusive: don't allow both at the same time 2. Require interrupt-names for 2+ interrupts to avoid /guessing/ Reported-by: Florian Fainelli <f.fainelli@xxxxxxxxx> Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx> --- I also thought of something like: interrupts: minItems: 1 items: - description: NAND CTLRDY interrupt - anyOf: - description: FLASH_DMA_DONE if flash DMA is available - description: FLASH_EDU_DONE if EDU is available (to avoid text-form "or" in "description") but that didn't work: CHKDT Documentation/devicetree/bindings/processed-schema.json ./Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml: error checking schema file SCHEMA Documentation/devicetree/bindings/processed-schema.json Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml: ignoring, error in schema: properties: interrupts --- .../devicetree/bindings/mtd/brcm,brcmnand.yaml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml index dd5a64969e37..cd606a21b53b 100644 --- a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml +++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml @@ -86,15 +86,15 @@ properties: minItems: 1 items: - description: NAND CTLRDY interrupt - - description: FLASH_DMA_DONE if flash DMA is available - - description: FLASH_EDU_DONE if EDU is available + - description: FLASH_DMA_DONE (if flash DMA is available) or FLASH_EDU_DONE (if EDU is available) interrupt-names: minItems: 1 items: - const: nand_ctlrdy - - const: flash_dma_done - - const: flash_edu_done + - enum: + - flash_dma_done + - flash_edu_done clocks: maxItems: 1 @@ -173,6 +173,13 @@ allOf: - const: nand - const: iproc-idm - const: iproc-ext + - if: + properties: + interrupts: + minItems: 2 + then: + required: + - interrupt-names unevaluatedProperties: false @@ -190,6 +197,7 @@ examples: reg-names = "nand", "flash-dma"; interrupt-parent = <&hif_intr2_intc>; interrupts = <24>, <4>; + interrupt-names = "nand_ctlrdy", "flash_dma_done"; #address-cells = <1>; #size-cells = <0>; -- 2.34.1