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