On Fri, Aug 27, 2021 at 07:15:26PM +0200, Mark Kettenis wrote: > From: Mark Kettenis <kettenis@xxxxxxxxxxx> > > Split the MSI controller bindings from the MSI binding document > into DT schema format using json-schema. > > Signed-off-by: Mark Kettenis <kettenis@xxxxxxxxxxx> > --- > .../interrupt-controller/msi-controller.yaml | 34 +++++++++++++++++++ > .../bindings/pci/brcm,stb-pcie.yaml | 1 + > .../bindings/pci/microchip,pcie-host.yaml | 1 + > 3 files changed, 36 insertions(+) > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/msi-controller.yaml > > diff --git a/Documentation/devicetree/bindings/interrupt-controller/msi-controller.yaml b/Documentation/devicetree/bindings/interrupt-controller/msi-controller.yaml > new file mode 100644 > index 000000000000..5ed6cd46e2e0 > --- /dev/null > +++ b/Documentation/devicetree/bindings/interrupt-controller/msi-controller.yaml > @@ -0,0 +1,34 @@ > +# SPDX-License-Identifier: BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/interrupt-controller/msi-controller.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: MSI controller > + > +maintainers: > + - Marc Zyngier <marc.zyngier@xxxxxxx> > + > +description: | > + An MSI controller signals interrupts to a CPU when a write is made > + to an MMIO address by some master. An MSI controller may feature a > + number of doorbells. > + > +properties: > + "#msi-cells": > + description: | > + The number of cells in an msi-specifier, required if not zero. > + > + Typically this will encode information related to sideband data, > + and will not encode doorbells or payloads as these can be > + configured dynamically. > + > + The meaning of the msi-specifier is defined by the device tree > + binding of the specific MSI controller. I'd prefer we limit this to the maximum range. I'd like to know when someone needs 2 cells (or 3000). enum: [ 0, 1 ] Though no one seems to use 0 (making it optional was probably a mistake...) > + > + msi-controller: > + description: > + Identifies the node as an MSI controller. > + $ref: /schemas/types.yaml#/definitions/flag dependencies: "#msi-cells": [ msi-controller ] > + > +additionalProperties: true > diff --git a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > index b9589a0daa5c..5c67976a8dc2 100644 > --- a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > @@ -88,6 +88,7 @@ required: > > allOf: > - $ref: /schemas/pci/pci-bus.yaml# > + - $ref: ../interrupt-controller/msi-controller.yaml# /schemas/interrupt-controller/msi-controller.yaml# > - if: > properties: > compatible: > diff --git a/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml b/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml > index fb95c276a986..684d9d036f48 100644 > --- a/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml > +++ b/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml > @@ -11,6 +11,7 @@ maintainers: > > allOf: > - $ref: /schemas/pci/pci-bus.yaml# > + - $ref: ../interrupt-controller/msi-controller.yaml# > > properties: > compatible: > -- > 2.32.0 > >