162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interrupt-controller/msi-controller.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: MSI controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Marc Zyngier <maz@kernel.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  An MSI controller signals interrupts to a CPU when a write is made
1462306a36Sopenharmony_ci  to an MMIO address by some master. An MSI controller may feature a
1562306a36Sopenharmony_ci  number of doorbells.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  "#msi-cells":
1962306a36Sopenharmony_ci    description: |
2062306a36Sopenharmony_ci      The number of cells in an msi-specifier, required if not zero.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci      Typically this will encode information related to sideband data,
2362306a36Sopenharmony_ci      and will not encode doorbells or payloads as these can be
2462306a36Sopenharmony_ci      configured dynamically.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci      The meaning of the msi-specifier is defined by the device tree
2762306a36Sopenharmony_ci      binding of the specific MSI controller.
2862306a36Sopenharmony_ci    enum: [0, 1]
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  msi-controller:
3162306a36Sopenharmony_ci    description:
3262306a36Sopenharmony_ci      Identifies the node as an MSI controller.
3362306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/flag
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  msi-ranges:
3662306a36Sopenharmony_ci    description:
3762306a36Sopenharmony_ci      A list of <phandle intspec span> tuples, where "phandle" is the
3862306a36Sopenharmony_ci      parent interrupt controller, "intspec" is the starting/base
3962306a36Sopenharmony_ci      interrupt specifier and "span" is the size of the
4062306a36Sopenharmony_ci      range. Multiple ranges can be provided.
4162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_cidependencies:
4462306a36Sopenharmony_ci  "#msi-cells": [ msi-controller ]
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciadditionalProperties: true
47