xref: /freebsd/sys/contrib/device-tree/Bindings/pci/altr,msi-controller.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*b2d2a78aSEmmanuel Vadot# Copyright (C) 2015, 2024, Intel Corporation
3*b2d2a78aSEmmanuel Vadot%YAML 1.2
4*b2d2a78aSEmmanuel Vadot---
5*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/altr,msi-controller.yaml#
6*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7*b2d2a78aSEmmanuel Vadot
8*b2d2a78aSEmmanuel Vadottitle: Altera PCIe MSI controller
9*b2d2a78aSEmmanuel Vadot
10*b2d2a78aSEmmanuel Vadotmaintainers:
11*b2d2a78aSEmmanuel Vadot  - Matthew Gerlach <matthew.gerlach@linux.intel.com>
12*b2d2a78aSEmmanuel Vadot
13*b2d2a78aSEmmanuel Vadotproperties:
14*b2d2a78aSEmmanuel Vadot  compatible:
15*b2d2a78aSEmmanuel Vadot    enum:
16*b2d2a78aSEmmanuel Vadot      - altr,msi-1.0
17*b2d2a78aSEmmanuel Vadot
18*b2d2a78aSEmmanuel Vadot  reg:
19*b2d2a78aSEmmanuel Vadot    items:
20*b2d2a78aSEmmanuel Vadot      - description: CSR registers
21*b2d2a78aSEmmanuel Vadot      - description: Vectors slave port region
22*b2d2a78aSEmmanuel Vadot
23*b2d2a78aSEmmanuel Vadot  reg-names:
24*b2d2a78aSEmmanuel Vadot    items:
25*b2d2a78aSEmmanuel Vadot      - const: csr
26*b2d2a78aSEmmanuel Vadot      - const: vector_slave
27*b2d2a78aSEmmanuel Vadot
28*b2d2a78aSEmmanuel Vadot  interrupts:
29*b2d2a78aSEmmanuel Vadot    maxItems: 1
30*b2d2a78aSEmmanuel Vadot
31*b2d2a78aSEmmanuel Vadot  msi-controller: true
32*b2d2a78aSEmmanuel Vadot
33*b2d2a78aSEmmanuel Vadot  num-vectors:
34*b2d2a78aSEmmanuel Vadot    description: number of vectors
35*b2d2a78aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
36*b2d2a78aSEmmanuel Vadot    minimum: 1
37*b2d2a78aSEmmanuel Vadot    maximum: 32
38*b2d2a78aSEmmanuel Vadot
39*b2d2a78aSEmmanuel Vadotrequired:
40*b2d2a78aSEmmanuel Vadot  - compatible
41*b2d2a78aSEmmanuel Vadot  - reg
42*b2d2a78aSEmmanuel Vadot  - reg-names
43*b2d2a78aSEmmanuel Vadot  - interrupts
44*b2d2a78aSEmmanuel Vadot  - msi-controller
45*b2d2a78aSEmmanuel Vadot  - num-vectors
46*b2d2a78aSEmmanuel Vadot
47*b2d2a78aSEmmanuel VadotallOf:
48*b2d2a78aSEmmanuel Vadot  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
49*b2d2a78aSEmmanuel Vadot
50*b2d2a78aSEmmanuel VadotunevaluatedProperties: false
51*b2d2a78aSEmmanuel Vadot
52*b2d2a78aSEmmanuel Vadotexamples:
53*b2d2a78aSEmmanuel Vadot  - |
54*b2d2a78aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
55*b2d2a78aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
56*b2d2a78aSEmmanuel Vadot    msi@ff200000 {
57*b2d2a78aSEmmanuel Vadot        compatible = "altr,msi-1.0";
58*b2d2a78aSEmmanuel Vadot        reg = <0xff200000 0x00000010>,
59*b2d2a78aSEmmanuel Vadot              <0xff200010 0x00000080>;
60*b2d2a78aSEmmanuel Vadot        reg-names = "csr", "vector_slave";
61*b2d2a78aSEmmanuel Vadot        interrupt-parent = <&hps_0_arm_gic_0>;
62*b2d2a78aSEmmanuel Vadot        interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
63*b2d2a78aSEmmanuel Vadot        msi-controller;
64*b2d2a78aSEmmanuel Vadot        num-vectors = <32>;
65*b2d2a78aSEmmanuel Vadot    };
66