1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/interrupt-controller/ti,sci-intr.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Texas Instruments K3 Interrupt Router
10 - Lokesh Vutla <lokeshvutla@ti.com>
13 - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
16 The Interrupt Router (INTR) module provides a mechanism to mux M
17 interrupt inputs to N interrupt outputs, where all M inputs are selectable
18 to be driven per N output. An Interrupt Router can either handle edge
19 triggered or level triggered interrupts and that is fixed in hardware.
22 +----------------------+
24 +-------+ | +------+ +-----+ |
25 | GPIO |----------->| | irq0 | | 0 | | Host IRQ
26 +-------+ | +------+ +-----+ | controller
28 +-------+ | . . |----->| IRQ |
29 | INTA |----------->| . . | +-------+
30 +-------+ | . +-----+ |
35 +----------------------+
37 There is one register per output (MUXCNTL_N) that controls the selection.
38 Configuration of these MUXCNTL_N registers is done by a system controller
39 (like the Device Memory and Security Controller on K3 AM654 SoC). System
40 controller will keep track of the used and unused registers within the Router.
41 Driver should request the system controller to get the range of GIC IRQs
42 assigned to the requesting hosts. It is the drivers responsibility to keep
45 Communication between the host processor running an OS and the system
46 controller happens through a protocol called TI System Control Interface
54 $ref: /schemas/types.yaml#/definitions/uint32
57 Should be one of the following.
58 1 = If intr supports edge triggered interrupts.
59 4 = If intr supports level triggered interrupts.
64 interrupt-controller: true
69 The 1st cell should contain interrupt router input hw number.
72 $ref: /schemas/types.yaml#/definitions/uint32-matrix
74 Interrupt ranges that converts the INTR output hw irq numbers
75 to parents's input interrupt numbers.
79 "output_irq" specifies the base for intr output irq
81 "parent's input irq" specifies the base for parent irq
83 "limit" specifies the limit for translation
87 - ti,intr-trigger-type
88 - interrupt-controller
94 unevaluatedProperties: false
98 main_gpio_intr: interrupt-controller0 {
99 compatible = "ti,sci-intr";
100 ti,intr-trigger-type = <1>;
101 interrupt-controller;
102 interrupt-parent = <&gic500>;
103 #interrupt-cells = <1>;
105 ti,sci-dev-id = <131>;
106 ti,interrupt-ranges = <0 360 32>;