1*4882a593Smuzhiyun* Samsung Exynos Interrupt Combiner Controller 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunSamsung's Exynos4 architecture includes a interrupt combiner controller which 4*4882a593Smuzhiyuncan combine interrupt sources as a group and provide a single interrupt request 5*4882a593Smuzhiyunfor the group. The interrupt request from each group are connected to a parent 6*4882a593Smuzhiyuninterrupt controller, such as GIC in case of Exynos4210. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunThe interrupt combiner controller consists of multiple combiners. Up to eight 9*4882a593Smuzhiyuninterrupt sources can be connected to a combiner. The combiner outputs one 10*4882a593Smuzhiyuncombined interrupt for its eight interrupt sources. The combined interrupt 11*4882a593Smuzhiyunis usually connected to a parent interrupt controller. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunA single node in the device tree is used to describe the interrupt combiner 14*4882a593Smuzhiyuncontroller module (which includes multiple combiners). A combiner in the 15*4882a593Smuzhiyuninterrupt controller module shares config/control registers with other 16*4882a593Smuzhiyuncombiners. For example, a 32-bit interrupt enable/disable config register 17*4882a593Smuzhiyuncan accommodate up to 4 interrupt combiners (with each combiner supporting 18*4882a593Smuzhiyunup to 8 interrupt sources). 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunRequired properties: 21*4882a593Smuzhiyun- compatible: should be "samsung,exynos4210-combiner". 22*4882a593Smuzhiyun- interrupt-controller: Identifies the node as an interrupt controller. 23*4882a593Smuzhiyun- #interrupt-cells: should be <2>. The meaning of the cells are 24*4882a593Smuzhiyun * First Cell: Combiner Group Number. 25*4882a593Smuzhiyun * Second Cell: Interrupt number within the group. 26*4882a593Smuzhiyun- reg: Base address and size of interrupt combiner registers. 27*4882a593Smuzhiyun- interrupts: The list of interrupts generated by the combiners which are then 28*4882a593Smuzhiyun connected to a parent interrupt controller. The format of the interrupt 29*4882a593Smuzhiyun specifier depends in the interrupt parent controller. 30*4882a593Smuzhiyun 31*4882a593SmuzhiyunOptional properties: 32*4882a593Smuzhiyun- samsung,combiner-nr: The number of interrupt combiners supported. If this 33*4882a593Smuzhiyun property is not specified, the default number of combiners is assumed 34*4882a593Smuzhiyun to be 16. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunExample: 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun The following is a an example from the Exynos4210 SoC dtsi file. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun combiner:interrupt-controller@10440000 { 42*4882a593Smuzhiyun compatible = "samsung,exynos4210-combiner"; 43*4882a593Smuzhiyun interrupt-controller; 44*4882a593Smuzhiyun #interrupt-cells = <2>; 45*4882a593Smuzhiyun reg = <0x10440000 0x1000>; 46*4882a593Smuzhiyun interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, 47*4882a593Smuzhiyun <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, 48*4882a593Smuzhiyun <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, 49*4882a593Smuzhiyun <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; 50*4882a593Smuzhiyun }; 51