1*2e8b4b6eSMark Kettenis# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2e8b4b6eSMark Kettenis%YAML 1.2
3*2e8b4b6eSMark Kettenis---
4*2e8b4b6eSMark Kettenis$id: http://devicetree.org/schemas/interrupt-controller/msi-controller.yaml#
5*2e8b4b6eSMark Kettenis$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2e8b4b6eSMark Kettenis
7*2e8b4b6eSMark Kettenistitle: MSI controller
8*2e8b4b6eSMark Kettenis
9*2e8b4b6eSMark Kettenismaintainers:
10*2e8b4b6eSMark Kettenis  - Marc Zyngier <maz@kernel.org>
11*2e8b4b6eSMark Kettenis
12*2e8b4b6eSMark Kettenisdescription: |
13*2e8b4b6eSMark Kettenis  An MSI controller signals interrupts to a CPU when a write is made
14*2e8b4b6eSMark Kettenis  to an MMIO address by some master. An MSI controller may feature a
15*2e8b4b6eSMark Kettenis  number of doorbells.
16*2e8b4b6eSMark Kettenis
17*2e8b4b6eSMark Kettenisproperties:
18*2e8b4b6eSMark Kettenis  "#msi-cells":
19*2e8b4b6eSMark Kettenis    description: |
20*2e8b4b6eSMark Kettenis      The number of cells in an msi-specifier, required if not zero.
21*2e8b4b6eSMark Kettenis
22*2e8b4b6eSMark Kettenis      Typically this will encode information related to sideband data,
23*2e8b4b6eSMark Kettenis      and will not encode doorbells or payloads as these can be
24*2e8b4b6eSMark Kettenis      configured dynamically.
25*2e8b4b6eSMark Kettenis
26*2e8b4b6eSMark Kettenis      The meaning of the msi-specifier is defined by the device tree
27*2e8b4b6eSMark Kettenis      binding of the specific MSI controller.
28*2e8b4b6eSMark Kettenis    enum: [0, 1]
29*2e8b4b6eSMark Kettenis
30*2e8b4b6eSMark Kettenis  msi-controller:
31*2e8b4b6eSMark Kettenis    description:
32*2e8b4b6eSMark Kettenis      Identifies the node as an MSI controller.
33*2e8b4b6eSMark Kettenis    $ref: /schemas/types.yaml#/definitions/flag
34*2e8b4b6eSMark Kettenis
35*2e8b4b6eSMark Kettenisdependencies:
36*2e8b4b6eSMark Kettenis  "#msi-cells": [ msi-controller ]
37*2e8b4b6eSMark Kettenis
38*2e8b4b6eSMark KettenisadditionalProperties: true
39