1*22227848SKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0 2*22227848SKrzysztof Kozlowski%YAML 1.2 3*22227848SKrzysztof Kozlowski--- 4*22227848SKrzysztof Kozlowski$id: http://devicetree.org/schemas/interrupt-controller/samsung,exynos4210-combiner.yaml# 5*22227848SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*22227848SKrzysztof Kozlowski 7*22227848SKrzysztof Kozlowskititle: Samsung Exynos SoC Interrupt Combiner Controller 8*22227848SKrzysztof Kozlowski 9*22227848SKrzysztof Kozlowskimaintainers: 10*22227848SKrzysztof Kozlowski - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11*22227848SKrzysztof Kozlowski 12*22227848SKrzysztof Kozlowskidescription: | 13*22227848SKrzysztof Kozlowski Samsung's Exynos4 architecture includes a interrupt combiner controller which 14*22227848SKrzysztof Kozlowski can combine interrupt sources as a group and provide a single interrupt 15*22227848SKrzysztof Kozlowski request for the group. The interrupt request from each group are connected to 16*22227848SKrzysztof Kozlowski a parent interrupt controller, such as GIC in case of Exynos4210. 17*22227848SKrzysztof Kozlowski 18*22227848SKrzysztof Kozlowski The interrupt combiner controller consists of multiple combiners. Up to eight 19*22227848SKrzysztof Kozlowski interrupt sources can be connected to a combiner. The combiner outputs one 20*22227848SKrzysztof Kozlowski combined interrupt for its eight interrupt sources. The combined interrupt is 21*22227848SKrzysztof Kozlowski usually connected to a parent interrupt controller. 22*22227848SKrzysztof Kozlowski 23*22227848SKrzysztof Kozlowski A single node in the device tree is used to describe the interrupt combiner 24*22227848SKrzysztof Kozlowski controller module (which includes multiple combiners). A combiner in the 25*22227848SKrzysztof Kozlowski interrupt controller module shares config/control registers with other 26*22227848SKrzysztof Kozlowski combiners. For example, a 32-bit interrupt enable/disable config register can 27*22227848SKrzysztof Kozlowski accommodate up to 4 interrupt combiners (with each combiner supporting up to 28*22227848SKrzysztof Kozlowski 8 interrupt sources). 29*22227848SKrzysztof Kozlowski 30*22227848SKrzysztof KozlowskiallOf: 31*22227848SKrzysztof Kozlowski - $ref: /schemas/interrupt-controller.yaml# 32*22227848SKrzysztof Kozlowski 33*22227848SKrzysztof Kozlowskiproperties: 34*22227848SKrzysztof Kozlowski compatible: 35*22227848SKrzysztof Kozlowski const: samsung,exynos4210-combiner 36*22227848SKrzysztof Kozlowski 37*22227848SKrzysztof Kozlowski interrupt-controller: true 38*22227848SKrzysztof Kozlowski 39*22227848SKrzysztof Kozlowski interrupts: 40*22227848SKrzysztof Kozlowski minItems: 8 41*22227848SKrzysztof Kozlowski maxItems: 32 42*22227848SKrzysztof Kozlowski 43*22227848SKrzysztof Kozlowski "#interrupt-cells": 44*22227848SKrzysztof Kozlowski description: | 45*22227848SKrzysztof Kozlowski The meaning of the cells are: 46*22227848SKrzysztof Kozlowski * First Cell: Combiner Group Number. 47*22227848SKrzysztof Kozlowski * Second Cell: Interrupt number within the group. 48*22227848SKrzysztof Kozlowski const: 2 49*22227848SKrzysztof Kozlowski 50*22227848SKrzysztof Kozlowski reg: 51*22227848SKrzysztof Kozlowski maxItems: 1 52*22227848SKrzysztof Kozlowski 53*22227848SKrzysztof Kozlowski samsung,combiner-nr: 54*22227848SKrzysztof Kozlowski description: | 55*22227848SKrzysztof Kozlowski The number of interrupt combiners supported. Should match number 56*22227848SKrzysztof Kozlowski of interrupts set in "interrupts" property. 57*22227848SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 58*22227848SKrzysztof Kozlowski minimum: 8 59*22227848SKrzysztof Kozlowski maximum: 32 60*22227848SKrzysztof Kozlowski default: 16 61*22227848SKrzysztof Kozlowski 62*22227848SKrzysztof Kozlowskirequired: 63*22227848SKrzysztof Kozlowski - compatible 64*22227848SKrzysztof Kozlowski - interrupt-controller 65*22227848SKrzysztof Kozlowski - interrupts 66*22227848SKrzysztof Kozlowski - "#interrupt-cells" 67*22227848SKrzysztof Kozlowski - reg 68*22227848SKrzysztof Kozlowski 69*22227848SKrzysztof KozlowskiadditionalProperties: false 70*22227848SKrzysztof Kozlowski 71*22227848SKrzysztof Kozlowskiexamples: 72*22227848SKrzysztof Kozlowski - | 73*22227848SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 74*22227848SKrzysztof Kozlowski 75*22227848SKrzysztof Kozlowski interrupt-controller@10440000 { 76*22227848SKrzysztof Kozlowski compatible = "samsung,exynos4210-combiner"; 77*22227848SKrzysztof Kozlowski interrupt-controller; 78*22227848SKrzysztof Kozlowski #interrupt-cells = <2>; 79*22227848SKrzysztof Kozlowski reg = <0x10440000 0x1000>; 80*22227848SKrzysztof Kozlowski interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 81*22227848SKrzysztof Kozlowski <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, 82*22227848SKrzysztof Kozlowski <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, 83*22227848SKrzysztof Kozlowski <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 84*22227848SKrzysztof Kozlowski <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 85*22227848SKrzysztof Kozlowski <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 86*22227848SKrzysztof Kozlowski <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 87*22227848SKrzysztof Kozlowski <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 88*22227848SKrzysztof Kozlowski <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 89*22227848SKrzysztof Kozlowski <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 90*22227848SKrzysztof Kozlowski <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 91*22227848SKrzysztof Kozlowski <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 92*22227848SKrzysztof Kozlowski <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 93*22227848SKrzysztof Kozlowski <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 94*22227848SKrzysztof Kozlowski <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 95*22227848SKrzysztof Kozlowski <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 96*22227848SKrzysztof Kozlowski }; 97