xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/marvell,mpic.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/marvell,mpic.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Marvell Armada 370, 375, 38x, 39x, XP Interrupt Controller
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadotmaintainers:
10*0e8011faSEmmanuel Vadot  - Marek Behún <kabel@kernel.org>
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadotdescription: |
13*0e8011faSEmmanuel Vadot  The top-level interrupt controller on Marvell Armada 370 and XP. On these
14*0e8011faSEmmanuel Vadot  platforms it also provides inter-processor interrupts.
15*0e8011faSEmmanuel Vadot
16*0e8011faSEmmanuel Vadot  On Marvell Armada 375, 38x and 39x this controller is wired under ARM GIC.
17*0e8011faSEmmanuel Vadot
18*0e8011faSEmmanuel Vadot  Provides MSI handling for the PCIe controllers.
19*0e8011faSEmmanuel Vadot
20*0e8011faSEmmanuel Vadotproperties:
21*0e8011faSEmmanuel Vadot  compatible:
22*0e8011faSEmmanuel Vadot    const: marvell,mpic
23*0e8011faSEmmanuel Vadot
24*0e8011faSEmmanuel Vadot  reg:
25*0e8011faSEmmanuel Vadot    items:
26*0e8011faSEmmanuel Vadot      - description: main registers
27*0e8011faSEmmanuel Vadot      - description: per-cpu registers
28*0e8011faSEmmanuel Vadot
29*0e8011faSEmmanuel Vadot  interrupts:
30*0e8011faSEmmanuel Vadot    items:
31*0e8011faSEmmanuel Vadot      - description: |
32*0e8011faSEmmanuel Vadot          Parent interrupt on platforms where MPIC is not the top-level
33*0e8011faSEmmanuel Vadot          interrupt controller.
34*0e8011faSEmmanuel Vadot
35*0e8011faSEmmanuel Vadot  interrupt-controller: true
36*0e8011faSEmmanuel Vadot
37*0e8011faSEmmanuel Vadot  '#interrupt-cells':
38*0e8011faSEmmanuel Vadot    const: 1
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot  msi-controller: true
41*0e8011faSEmmanuel Vadot
42*0e8011faSEmmanuel Vadotrequired:
43*0e8011faSEmmanuel Vadot  - compatible
44*0e8011faSEmmanuel Vadot  - reg
45*0e8011faSEmmanuel Vadot  - interrupt-controller
46*0e8011faSEmmanuel Vadot  - '#interrupt-cells'
47*0e8011faSEmmanuel Vadot  - msi-controller
48*0e8011faSEmmanuel Vadot
49*0e8011faSEmmanuel VadotadditionalProperties: false
50*0e8011faSEmmanuel Vadot
51*0e8011faSEmmanuel Vadotexamples:
52*0e8011faSEmmanuel Vadot  - |
53*0e8011faSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
54*0e8011faSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
55*0e8011faSEmmanuel Vadot
56*0e8011faSEmmanuel Vadot    interrupt-controller@20a00 {
57*0e8011faSEmmanuel Vadot        compatible = "marvell,mpic";
58*0e8011faSEmmanuel Vadot        reg = <0x20a00 0x2d0>, <0x21070 0x58>;
59*0e8011faSEmmanuel Vadot        interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
60*0e8011faSEmmanuel Vadot        interrupt-controller;
61*0e8011faSEmmanuel Vadot        #interrupt-cells = <1>;
62*0e8011faSEmmanuel Vadot        msi-controller;
63*0e8011faSEmmanuel Vadot    };
64