Commit d6e201f8 authored by Rob Herring's avatar Rob Herring
Browse files

dt-bindings: PCI: brcm,iproc-pcie: Fix 'msi' child node schema



The 'msi' child node schema is missing constraints on additional properties.
It turns out it is incomplete and properties for it are documented in the
parent node by mistake. Move the reference to msi-controller.yaml and
the custom properties to the 'msi' node. Adding 'unevaluatedProperties'
ensures all the properties in the 'msi' node are documented.

With the schema corrected, a minimal interrupt controller node is needed
to properly decode the interrupt properties since the example has
multiple interrupt parents.

Acked-by: default avatarConor Dooley <conor.dooley@microchip.com>
Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Fixes: 905b986d ("dt-bindings: pci: Convert iProc PCIe to YAML")
Link: https://lore.kernel.org/r/20230926155613.33904-3-robh@kernel.org


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent e2745e63
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@ maintainers:

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#
  - $ref: /schemas/interrupt-controller/msi-controller.yaml#

properties:
  compatible:
@@ -63,21 +62,25 @@ properties:

  msi:
    type: object
    $ref: /schemas/interrupt-controller/msi-controller.yaml#
    unevaluatedProperties: false

    properties:
      compatible:
        items:
          - const: brcm,iproc-msi

  msi-parent: true

  msi-controller: true
      interrupts:
        maxItems: 4

      brcm,pcie-msi-inten:
        type: boolean
    description: >
        description:
          Needs to be present for some older iProc platforms that require the
          interrupt enable registers to be set explicitly to enable MSI

  msi-parent: true

dependencies:
  brcm,pcie-ob-axi-offset: ["brcm,pcie-ob"]
  brcm,pcie-msi-inten: [msi-controller]
@@ -104,6 +107,11 @@ examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    gic: interrupt-controller {
        interrupt-controller;
        #interrupt-cells = <3>;
    };

    pcie@18012000 {
        compatible = "brcm,iproc-pcie";
        reg = <0x18012000 0x1000>;