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