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