xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/mrvl,intc.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Marvell MMP Interrupt controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible : Should be
5*c66ec88fSEmmanuel Vadot               "mrvl,mmp-intc" on Marvel MMP,
6*c66ec88fSEmmanuel Vadot               "mrvl,mmp2-intc" along with "mrvl,mmp2-mux-intc" on MMP2 or
7*c66ec88fSEmmanuel Vadot               "marvell,mmp3-intc" with "mrvl,mmp2-mux-intc" on MMP3
8*c66ec88fSEmmanuel Vadot- reg : Address and length of the register set of the interrupt controller.
9*c66ec88fSEmmanuel Vadot  If the interrupt controller is intc, address and length means the range
10*c66ec88fSEmmanuel Vadot  of the whole interrupt controller. The "marvell,mmp3-intc" controller
11*c66ec88fSEmmanuel Vadot  also has a secondary range for the second CPU core.  If the interrupt
12*c66ec88fSEmmanuel Vadot  controller is mux-intc, address and length means one register. Since
13*c66ec88fSEmmanuel Vadot  address of mux-intc is in the range of intc. mux-intc is secondary
14*c66ec88fSEmmanuel Vadot  interrupt controller.
15*c66ec88fSEmmanuel Vadot- reg-names : Name of the register set of the interrupt controller. It's
16*c66ec88fSEmmanuel Vadot  only required in mux-intc interrupt controller.
17*c66ec88fSEmmanuel Vadot- interrupts : Should be the port interrupt shared by mux interrupts. It's
18*c66ec88fSEmmanuel Vadot  only required in mux-intc interrupt controller.
19*c66ec88fSEmmanuel Vadot- interrupt-controller : Identifies the node as an interrupt controller.
20*c66ec88fSEmmanuel Vadot- #interrupt-cells : Specifies the number of cells needed to encode an
21*c66ec88fSEmmanuel Vadot  interrupt source.
22*c66ec88fSEmmanuel Vadot- mrvl,intc-nr-irqs : Specifies the number of interrupts in the interrupt
23*c66ec88fSEmmanuel Vadot  controller.
24*c66ec88fSEmmanuel Vadot- mrvl,clr-mfp-irq : Specifies the interrupt that needs to clear MFP edge
25*c66ec88fSEmmanuel Vadot  detection first.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel VadotExample:
28*c66ec88fSEmmanuel Vadot	intc: interrupt-controller@d4282000 {
29*c66ec88fSEmmanuel Vadot		compatible = "mrvl,mmp2-intc";
30*c66ec88fSEmmanuel Vadot		interrupt-controller;
31*c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
32*c66ec88fSEmmanuel Vadot		reg = <0xd4282000 0x1000>;
33*c66ec88fSEmmanuel Vadot		mrvl,intc-nr-irqs = <64>;
34*c66ec88fSEmmanuel Vadot	};
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel Vadot	intcmux4@d4282150 {
37*c66ec88fSEmmanuel Vadot		compatible = "mrvl,mmp2-mux-intc";
38*c66ec88fSEmmanuel Vadot		interrupts = <4>;
39*c66ec88fSEmmanuel Vadot		interrupt-controller;
40*c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
41*c66ec88fSEmmanuel Vadot		reg = <0x150 0x4>, <0x168 0x4>;
42*c66ec88fSEmmanuel Vadot		reg-names = "mux status", "mux mask";
43*c66ec88fSEmmanuel Vadot		mrvl,intc-nr-irqs = <2>;
44*c66ec88fSEmmanuel Vadot	};
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot* Marvell Orion Interrupt controller
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel VadotRequired properties
49*c66ec88fSEmmanuel Vadot- compatible :  Should be "marvell,orion-intc".
50*c66ec88fSEmmanuel Vadot- #interrupt-cells: Specifies the number of cells needed to encode an
51*c66ec88fSEmmanuel Vadot  interrupt source. Supported value is <1>.
52*c66ec88fSEmmanuel Vadot- interrupt-controller : Declare this node to be an interrupt controller.
53*c66ec88fSEmmanuel Vadot- reg : Interrupt mask address. A list of 4 byte ranges, one per controller.
54*c66ec88fSEmmanuel Vadot        One entry in the list represents 32 interrupts.
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel VadotExample:
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel Vadot	intc: interrupt-controller {
59*c66ec88fSEmmanuel Vadot        	compatible = "marvell,orion-intc", "marvell,intc";
60*c66ec88fSEmmanuel Vadot		interrupt-controller;
61*c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
62*c66ec88fSEmmanuel Vadot                reg = <0xfed20204 0x04>,
63*c66ec88fSEmmanuel Vadot		      <0xfed20214 0x04>;
64*c66ec88fSEmmanuel Vadot        };
65