xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/econet,en751221-intc.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/econet,en751221-intc.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: EcoNet EN751221 Interrupt Controller
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotmaintainers:
10*ae5de77eSEmmanuel Vadot  - Caleb James DeLisle <cjd@cjdns.fr>
11*ae5de77eSEmmanuel Vadot
12*ae5de77eSEmmanuel Vadotdescription:
13*ae5de77eSEmmanuel Vadot  The EcoNet EN751221 Interrupt Controller is a simple interrupt controller
14*ae5de77eSEmmanuel Vadot  designed for the MIPS 34Kc MT SMP processor with 2 VPEs. Each interrupt can
15*ae5de77eSEmmanuel Vadot  be routed to either VPE but not both, so to support per-CPU interrupts, a
16*ae5de77eSEmmanuel Vadot  secondary IRQ number is allocated to control masking/unmasking on VPE#1. For
17*ae5de77eSEmmanuel Vadot  lack of a better term we call these "shadow interrupts". The assignment of
18*ae5de77eSEmmanuel Vadot  shadow interrupts is defined by the SoC integrator when wiring the interrupt
19*ae5de77eSEmmanuel Vadot  lines, so they are configurable in the device tree.
20*ae5de77eSEmmanuel Vadot
21*ae5de77eSEmmanuel VadotallOf:
22*ae5de77eSEmmanuel Vadot  - $ref: /schemas/interrupt-controller.yaml#
23*ae5de77eSEmmanuel Vadot
24*ae5de77eSEmmanuel Vadotproperties:
25*ae5de77eSEmmanuel Vadot  compatible:
26*ae5de77eSEmmanuel Vadot    const: econet,en751221-intc
27*ae5de77eSEmmanuel Vadot
28*ae5de77eSEmmanuel Vadot  reg:
29*ae5de77eSEmmanuel Vadot    maxItems: 1
30*ae5de77eSEmmanuel Vadot
31*ae5de77eSEmmanuel Vadot  "#interrupt-cells":
32*ae5de77eSEmmanuel Vadot    const: 1
33*ae5de77eSEmmanuel Vadot
34*ae5de77eSEmmanuel Vadot  interrupt-controller: true
35*ae5de77eSEmmanuel Vadot
36*ae5de77eSEmmanuel Vadot  interrupts:
37*ae5de77eSEmmanuel Vadot    maxItems: 1
38*ae5de77eSEmmanuel Vadot    description: Interrupt line connecting this controller to its parent.
39*ae5de77eSEmmanuel Vadot
40*ae5de77eSEmmanuel Vadot  econet,shadow-interrupts:
41*ae5de77eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-matrix
42*ae5de77eSEmmanuel Vadot    description:
43*ae5de77eSEmmanuel Vadot      An array of interrupt number pairs where each pair represents a shadow
44*ae5de77eSEmmanuel Vadot      interrupt relationship. The first number in each pair is the primary IRQ,
45*ae5de77eSEmmanuel Vadot      and the second is its shadow IRQ used for VPE#1 control. For example,
46*ae5de77eSEmmanuel Vadot      <8 3> means IRQ 8 is shadowed by IRQ 3, so IRQ 3 cannot be mapped, but
47*ae5de77eSEmmanuel Vadot      when VPE#1 requests IRQ 8, it will manipulate the IRQ 3 mask bit.
48*ae5de77eSEmmanuel Vadot    minItems: 1
49*ae5de77eSEmmanuel Vadot    maxItems: 20
50*ae5de77eSEmmanuel Vadot    items:
51*ae5de77eSEmmanuel Vadot      items:
52*ae5de77eSEmmanuel Vadot        - description: primary per-CPU IRQ
53*ae5de77eSEmmanuel Vadot        - description: shadow IRQ number
54*ae5de77eSEmmanuel Vadot
55*ae5de77eSEmmanuel Vadotrequired:
56*ae5de77eSEmmanuel Vadot  - compatible
57*ae5de77eSEmmanuel Vadot  - reg
58*ae5de77eSEmmanuel Vadot  - interrupt-controller
59*ae5de77eSEmmanuel Vadot  - "#interrupt-cells"
60*ae5de77eSEmmanuel Vadot  - interrupts
61*ae5de77eSEmmanuel Vadot
62*ae5de77eSEmmanuel VadotadditionalProperties: false
63*ae5de77eSEmmanuel Vadot
64*ae5de77eSEmmanuel Vadotexamples:
65*ae5de77eSEmmanuel Vadot  - |
66*ae5de77eSEmmanuel Vadot    interrupt-controller@1fb40000 {
67*ae5de77eSEmmanuel Vadot        compatible = "econet,en751221-intc";
68*ae5de77eSEmmanuel Vadot        reg = <0x1fb40000 0x100>;
69*ae5de77eSEmmanuel Vadot
70*ae5de77eSEmmanuel Vadot        interrupt-controller;
71*ae5de77eSEmmanuel Vadot        #interrupt-cells = <1>;
72*ae5de77eSEmmanuel Vadot
73*ae5de77eSEmmanuel Vadot        interrupt-parent = <&cpuintc>;
74*ae5de77eSEmmanuel Vadot        interrupts = <2>;
75*ae5de77eSEmmanuel Vadot
76*ae5de77eSEmmanuel Vadot        econet,shadow-interrupts = <7 2>, <8 3>, <13 12>, <30 29>;
77*ae5de77eSEmmanuel Vadot    };
78*ae5de77eSEmmanuel Vadot...
79