xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/fsl,ls-msi.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-msi.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Freescale Layerscape SCFG PCIe MSI controller
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadotdescription: |
10*0e8011faSEmmanuel Vadot  This interrupt controller hardware is a second level interrupt controller that
11*0e8011faSEmmanuel Vadot  is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based
12*0e8011faSEmmanuel Vadot  platforms. If interrupt-parent is not provided, the default parent interrupt
13*0e8011faSEmmanuel Vadot  controller will be used.
14*0e8011faSEmmanuel Vadot
15*0e8011faSEmmanuel Vadot  Each PCIe node needs to have property msi-parent that points to
16*0e8011faSEmmanuel Vadot  MSI controller node
17*0e8011faSEmmanuel Vadot
18*0e8011faSEmmanuel Vadotmaintainers:
19*0e8011faSEmmanuel Vadot  - Frank Li <Frank.Li@nxp.com>
20*0e8011faSEmmanuel Vadot
21*0e8011faSEmmanuel Vadotproperties:
22*0e8011faSEmmanuel Vadot  compatible:
23*0e8011faSEmmanuel Vadot    enum:
24*0e8011faSEmmanuel Vadot      - fsl,ls1012a-msi
25*0e8011faSEmmanuel Vadot      - fsl,ls1021a-msi
26*0e8011faSEmmanuel Vadot      - fsl,ls1043a-msi
27*0e8011faSEmmanuel Vadot      - fsl,ls1043a-v1.1-msi
28*0e8011faSEmmanuel Vadot      - fsl,ls1046a-msi
29*0e8011faSEmmanuel Vadot
30*0e8011faSEmmanuel Vadot  reg:
31*0e8011faSEmmanuel Vadot    maxItems: 1
32*0e8011faSEmmanuel Vadot
33*0e8011faSEmmanuel Vadot  '#msi-cells':
34*0e8011faSEmmanuel Vadot    const: 1
35*0e8011faSEmmanuel Vadot
36*0e8011faSEmmanuel Vadot  interrupts:
37*0e8011faSEmmanuel Vadot    items:
38*0e8011faSEmmanuel Vadot      - description: Shared MSI interrupt group 0
39*0e8011faSEmmanuel Vadot      - description: Shared MSI interrupt group 1
40*0e8011faSEmmanuel Vadot      - description: Shared MSI interrupt group 2
41*0e8011faSEmmanuel Vadot      - description: Shared MSI interrupt group 3
42*0e8011faSEmmanuel Vadot    minItems: 1
43*0e8011faSEmmanuel Vadot
44*0e8011faSEmmanuel Vadotrequired:
45*0e8011faSEmmanuel Vadot  - compatible
46*0e8011faSEmmanuel Vadot  - reg
47*0e8011faSEmmanuel Vadot  - msi-controller
48*0e8011faSEmmanuel Vadot  - interrupts
49*0e8011faSEmmanuel Vadot
50*0e8011faSEmmanuel VadotallOf:
51*0e8011faSEmmanuel Vadot  - $ref: msi-controller.yaml
52*0e8011faSEmmanuel Vadot  - if:
53*0e8011faSEmmanuel Vadot      properties:
54*0e8011faSEmmanuel Vadot        compatible:
55*0e8011faSEmmanuel Vadot          contains:
56*0e8011faSEmmanuel Vadot            enum:
57*0e8011faSEmmanuel Vadot              - fsl,ls1046a-msi
58*0e8011faSEmmanuel Vadot    then:
59*0e8011faSEmmanuel Vadot      properties:
60*0e8011faSEmmanuel Vadot        interrupts:
61*0e8011faSEmmanuel Vadot          minItems: 4
62*0e8011faSEmmanuel Vadot    else:
63*0e8011faSEmmanuel Vadot      properties:
64*0e8011faSEmmanuel Vadot        interrupts:
65*0e8011faSEmmanuel Vadot          maxItems: 1
66*0e8011faSEmmanuel Vadot
67*0e8011faSEmmanuel VadotunevaluatedProperties: false
68*0e8011faSEmmanuel Vadot
69*0e8011faSEmmanuel Vadotexamples:
70*0e8011faSEmmanuel Vadot  - |
71*0e8011faSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
72*0e8011faSEmmanuel Vadot
73*0e8011faSEmmanuel Vadot    interrupt-controller@1571000 {
74*0e8011faSEmmanuel Vadot        compatible = "fsl,ls1043a-msi";
75*0e8011faSEmmanuel Vadot        reg = <0x1571000 0x8>;
76*0e8011faSEmmanuel Vadot        msi-controller;
77*0e8011faSEmmanuel Vadot        #msi-cells = <1>;
78*0e8011faSEmmanuel Vadot        interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
79*0e8011faSEmmanuel Vadot    };
80