xref: /freebsd-src/sys/contrib/device-tree/Bindings/interrupt-controller/msi-controller.yaml (revision 8cc087a1eee9ec1ca9f7ac1e63ad51bdb5a682eb)
1*8cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8cc087a1SEmmanuel Vadot%YAML 1.2
3*8cc087a1SEmmanuel Vadot---
4*8cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/msi-controller.yaml#
5*8cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8cc087a1SEmmanuel Vadot
7*8cc087a1SEmmanuel Vadottitle: MSI controller
8*8cc087a1SEmmanuel Vadot
9*8cc087a1SEmmanuel Vadotmaintainers:
10*8cc087a1SEmmanuel Vadot  - Marc Zyngier <maz@kernel.org>
11*8cc087a1SEmmanuel Vadot
12*8cc087a1SEmmanuel Vadotdescription: |
13*8cc087a1SEmmanuel Vadot  An MSI controller signals interrupts to a CPU when a write is made
14*8cc087a1SEmmanuel Vadot  to an MMIO address by some master. An MSI controller may feature a
15*8cc087a1SEmmanuel Vadot  number of doorbells.
16*8cc087a1SEmmanuel Vadot
17*8cc087a1SEmmanuel Vadotproperties:
18*8cc087a1SEmmanuel Vadot  "#msi-cells":
19*8cc087a1SEmmanuel Vadot    description: |
20*8cc087a1SEmmanuel Vadot      The number of cells in an msi-specifier, required if not zero.
21*8cc087a1SEmmanuel Vadot
22*8cc087a1SEmmanuel Vadot      Typically this will encode information related to sideband data,
23*8cc087a1SEmmanuel Vadot      and will not encode doorbells or payloads as these can be
24*8cc087a1SEmmanuel Vadot      configured dynamically.
25*8cc087a1SEmmanuel Vadot
26*8cc087a1SEmmanuel Vadot      The meaning of the msi-specifier is defined by the device tree
27*8cc087a1SEmmanuel Vadot      binding of the specific MSI controller.
28*8cc087a1SEmmanuel Vadot    enum: [0, 1]
29*8cc087a1SEmmanuel Vadot
30*8cc087a1SEmmanuel Vadot  msi-controller:
31*8cc087a1SEmmanuel Vadot    description:
32*8cc087a1SEmmanuel Vadot      Identifies the node as an MSI controller.
33*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
34*8cc087a1SEmmanuel Vadot
35*8cc087a1SEmmanuel Vadot  msi-ranges:
36*8cc087a1SEmmanuel Vadot    description:
37*8cc087a1SEmmanuel Vadot      A list of <phandle intspec span> tuples, where "phandle" is the
38*8cc087a1SEmmanuel Vadot      parent interrupt controller, "intspec" is the starting/base
39*8cc087a1SEmmanuel Vadot      interrupt specifier and "span" is the size of the
40*8cc087a1SEmmanuel Vadot      range. Multiple ranges can be provided.
41*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
42*8cc087a1SEmmanuel Vadot
43*8cc087a1SEmmanuel Vadotdependencies:
44*8cc087a1SEmmanuel Vadot  "#msi-cells": [ msi-controller ]
45*8cc087a1SEmmanuel Vadot
46*8cc087a1SEmmanuel VadotadditionalProperties: true
47