1354d7675SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/samsung,exynos4210-combiner.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Samsung Exynos SoC Interrupt Combiner Controller
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10*c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel Vadotdescription: |
13354d7675SEmmanuel Vadot  Samsung's Exynos4 architecture includes a interrupt combiner controller which
14354d7675SEmmanuel Vadot  can combine interrupt sources as a group and provide a single interrupt
15354d7675SEmmanuel Vadot  request for the group. The interrupt request from each group are connected to
16354d7675SEmmanuel Vadot  a parent interrupt controller, such as GIC in case of Exynos4210.
17354d7675SEmmanuel Vadot
18354d7675SEmmanuel Vadot  The interrupt combiner controller consists of multiple combiners. Up to eight
19354d7675SEmmanuel Vadot  interrupt sources can be connected to a combiner. The combiner outputs one
20354d7675SEmmanuel Vadot  combined interrupt for its eight interrupt sources. The combined interrupt is
21354d7675SEmmanuel Vadot  usually connected to a parent interrupt controller.
22354d7675SEmmanuel Vadot
23354d7675SEmmanuel Vadot  A single node in the device tree is used to describe the interrupt combiner
24354d7675SEmmanuel Vadot  controller module (which includes multiple combiners). A combiner in the
25354d7675SEmmanuel Vadot  interrupt controller module shares config/control registers with other
26354d7675SEmmanuel Vadot  combiners. For example, a 32-bit interrupt enable/disable config register can
27354d7675SEmmanuel Vadot  accommodate up to 4 interrupt combiners (with each combiner supporting up to
28354d7675SEmmanuel Vadot  8 interrupt sources).
29354d7675SEmmanuel Vadot
30354d7675SEmmanuel VadotallOf:
31354d7675SEmmanuel Vadot  - $ref: /schemas/interrupt-controller.yaml#
32354d7675SEmmanuel Vadot
33354d7675SEmmanuel Vadotproperties:
34354d7675SEmmanuel Vadot  compatible:
35354d7675SEmmanuel Vadot    const: samsung,exynos4210-combiner
36354d7675SEmmanuel Vadot
37354d7675SEmmanuel Vadot  interrupt-controller: true
38354d7675SEmmanuel Vadot
39354d7675SEmmanuel Vadot  interrupts:
40354d7675SEmmanuel Vadot    minItems: 8
41354d7675SEmmanuel Vadot    maxItems: 32
42354d7675SEmmanuel Vadot
43354d7675SEmmanuel Vadot  "#interrupt-cells":
44354d7675SEmmanuel Vadot    description: |
45354d7675SEmmanuel Vadot      The meaning of the cells are:
46354d7675SEmmanuel Vadot        * First Cell: Combiner Group Number.
47354d7675SEmmanuel Vadot        * Second Cell: Interrupt number within the group.
48354d7675SEmmanuel Vadot    const: 2
49354d7675SEmmanuel Vadot
50354d7675SEmmanuel Vadot  reg:
51354d7675SEmmanuel Vadot    maxItems: 1
52354d7675SEmmanuel Vadot
53354d7675SEmmanuel Vadot  samsung,combiner-nr:
54354d7675SEmmanuel Vadot    description: |
55354d7675SEmmanuel Vadot      The number of interrupt combiners supported.  Should match number
56354d7675SEmmanuel Vadot      of interrupts set in "interrupts" property.
57354d7675SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
58354d7675SEmmanuel Vadot    minimum: 8
59354d7675SEmmanuel Vadot    maximum: 32
60354d7675SEmmanuel Vadot    default: 16
61354d7675SEmmanuel Vadot
62354d7675SEmmanuel Vadotrequired:
63354d7675SEmmanuel Vadot  - compatible
64354d7675SEmmanuel Vadot  - interrupt-controller
65354d7675SEmmanuel Vadot  - interrupts
66354d7675SEmmanuel Vadot  - "#interrupt-cells"
67354d7675SEmmanuel Vadot  - reg
68354d7675SEmmanuel Vadot
69354d7675SEmmanuel VadotadditionalProperties: false
70354d7675SEmmanuel Vadot
71354d7675SEmmanuel Vadotexamples:
72354d7675SEmmanuel Vadot  - |
73354d7675SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
74354d7675SEmmanuel Vadot
75354d7675SEmmanuel Vadot    interrupt-controller@10440000 {
76354d7675SEmmanuel Vadot        compatible = "samsung,exynos4210-combiner";
77354d7675SEmmanuel Vadot        interrupt-controller;
78354d7675SEmmanuel Vadot        #interrupt-cells = <2>;
79354d7675SEmmanuel Vadot        reg = <0x10440000 0x1000>;
80354d7675SEmmanuel Vadot        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
81354d7675SEmmanuel Vadot                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
82354d7675SEmmanuel Vadot                     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
83354d7675SEmmanuel Vadot                     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
84354d7675SEmmanuel Vadot                     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
85354d7675SEmmanuel Vadot                     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
86354d7675SEmmanuel Vadot                     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
87354d7675SEmmanuel Vadot                     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
88354d7675SEmmanuel Vadot                     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
89354d7675SEmmanuel Vadot                     <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
90354d7675SEmmanuel Vadot                     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
91354d7675SEmmanuel Vadot                     <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
92354d7675SEmmanuel Vadot                     <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
93354d7675SEmmanuel Vadot                     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
94354d7675SEmmanuel Vadot                     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
95354d7675SEmmanuel Vadot                     <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
96354d7675SEmmanuel Vadot    };
97