# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/sophgo,sg2042-msi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sophgo SG2042 MSI Controller

maintainers:
  - Chen Wang <unicorn_wang@outlook.com>

description:
  This interrupt controller is in Sophgo SG2042 for transforming interrupts from
  PCIe MSI to PLIC interrupts.

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

properties:
  compatible:
    const: sophgo,sg2042-msi

  reg:
    items:
      - description: clear register
      - description: msi doorbell address

  reg-names:
    items:
      - const: clr
      - const: doorbell

  msi-controller: true

  msi-ranges:
    maxItems: 1

  "#msi-cells":
    const: 0

required:
  - compatible
  - reg
  - reg-names
  - msi-controller
  - msi-ranges
  - "#msi-cells"

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    msi-controller@30000000 {
      compatible = "sophgo,sg2042-msi";
      reg = <0x30000000 0x4>, <0x30000008 0x4>;
      reg-names = "clr", "doorbell";
      msi-controller;
      #msi-cells = <0>;
      msi-ranges = <&plic 64 IRQ_TYPE_LEVEL_HIGH 32>;
    };
