1*c4dff06eSLokesh Vutla# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*c4dff06eSLokesh Vutla%YAML 1.2 3*c4dff06eSLokesh Vutla--- 4*c4dff06eSLokesh Vutla$id: http://devicetree.org/schemas/interrupt-controller/ti,sci-inta.yaml# 5*c4dff06eSLokesh Vutla$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c4dff06eSLokesh Vutla 7*c4dff06eSLokesh Vutlatitle: Texas Instruments K3 Interrupt Aggregator 8*c4dff06eSLokesh Vutla 9*c4dff06eSLokesh Vutlamaintainers: 10*c4dff06eSLokesh Vutla - Lokesh Vutla <lokeshvutla@ti.com> 11*c4dff06eSLokesh Vutla 12*c4dff06eSLokesh VutlaallOf: 13*c4dff06eSLokesh Vutla - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml# 14*c4dff06eSLokesh Vutla 15*c4dff06eSLokesh Vutladescription: | 16*c4dff06eSLokesh Vutla The Interrupt Aggregator (INTA) provides a centralized machine 17*c4dff06eSLokesh Vutla which handles the termination of system events to that they can 18*c4dff06eSLokesh Vutla be coherently processed by the host(s) in the system. A maximum 19*c4dff06eSLokesh Vutla of 64 events can be mapped to a single interrupt. 20*c4dff06eSLokesh Vutla 21*c4dff06eSLokesh Vutla Interrupt Aggregator 22*c4dff06eSLokesh Vutla +-----------------------------------------+ 23*c4dff06eSLokesh Vutla | Intmap VINT | 24*c4dff06eSLokesh Vutla | +--------------+ +------------+ | 25*c4dff06eSLokesh Vutla m ------>| | vint | bit | | 0 |.....|63| vint0 | 26*c4dff06eSLokesh Vutla . | +--------------+ +------------+ | +------+ 27*c4dff06eSLokesh Vutla . | . . | | HOST | 28*c4dff06eSLokesh Vutla Globalevents ------>| . . |----->| IRQ | 29*c4dff06eSLokesh Vutla . | . . | | CTRL | 30*c4dff06eSLokesh Vutla . | . . | +------+ 31*c4dff06eSLokesh Vutla n ------>| +--------------+ +------------+ | 32*c4dff06eSLokesh Vutla | | vint | bit | | 0 |.....|63| vintx | 33*c4dff06eSLokesh Vutla | +--------------+ +------------+ | 34*c4dff06eSLokesh Vutla | | 35*c4dff06eSLokesh Vutla +-----------------------------------------+ 36*c4dff06eSLokesh Vutla 37*c4dff06eSLokesh Vutla Configuration of these Intmap registers that maps global events to vint is 38*c4dff06eSLokesh Vutla done by a system controller (like the Device Memory and Security Controller 39*c4dff06eSLokesh Vutla on AM654 SoC). Driver should request the system controller to get the range 40*c4dff06eSLokesh Vutla of global events and vints assigned to the requesting host. Management 41*c4dff06eSLokesh Vutla of these requested resources should be handled by driver and requests 42*c4dff06eSLokesh Vutla system controller to map specific global event to vint, bit pair. 43*c4dff06eSLokesh Vutla 44*c4dff06eSLokesh Vutla Communication between the host processor running an OS and the system 45*c4dff06eSLokesh Vutla controller happens through a protocol called TI System Control Interface 46*c4dff06eSLokesh Vutla (TISCI protocol). 47*c4dff06eSLokesh Vutla 48*c4dff06eSLokesh Vutlaproperties: 49*c4dff06eSLokesh Vutla compatible: 50*c4dff06eSLokesh Vutla const: ti,sci-inta 51*c4dff06eSLokesh Vutla 52*c4dff06eSLokesh Vutla reg: 53*c4dff06eSLokesh Vutla maxItems: 1 54*c4dff06eSLokesh Vutla 55*c4dff06eSLokesh Vutla interrupt-controller: true 56*c4dff06eSLokesh Vutla 57*c4dff06eSLokesh Vutla msi-controller: true 58*c4dff06eSLokesh Vutla 59*c4dff06eSLokesh Vutla ti,interrupt-ranges: 60*c4dff06eSLokesh Vutla $ref: /schemas/types.yaml#/definitions/uint32-matrix 61*c4dff06eSLokesh Vutla description: | 62*c4dff06eSLokesh Vutla Interrupt ranges that converts the INTA output hw irq numbers 63*c4dff06eSLokesh Vutla to parents's input interrupt numbers. 64*c4dff06eSLokesh Vutla items: 65*c4dff06eSLokesh Vutla items: 66*c4dff06eSLokesh Vutla - description: | 67*c4dff06eSLokesh Vutla "output_irq" specifies the base for inta output irq 68*c4dff06eSLokesh Vutla - description: | 69*c4dff06eSLokesh Vutla "parent's input irq" specifies the base for parent irq 70*c4dff06eSLokesh Vutla - description: | 71*c4dff06eSLokesh Vutla "limit" specifies the limit for translation 72*c4dff06eSLokesh Vutla 73*c4dff06eSLokesh Vutlarequired: 74*c4dff06eSLokesh Vutla - compatible 75*c4dff06eSLokesh Vutla - reg 76*c4dff06eSLokesh Vutla - interrupt-controller 77*c4dff06eSLokesh Vutla - msi-controller 78*c4dff06eSLokesh Vutla - ti,sci 79*c4dff06eSLokesh Vutla - ti,sci-dev-id 80*c4dff06eSLokesh Vutla - ti,interrupt-ranges 81*c4dff06eSLokesh Vutla 82*c4dff06eSLokesh Vutlaexamples: 83*c4dff06eSLokesh Vutla - | 84*c4dff06eSLokesh Vutla bus { 85*c4dff06eSLokesh Vutla #address-cells = <2>; 86*c4dff06eSLokesh Vutla #size-cells = <2>; 87*c4dff06eSLokesh Vutla 88*c4dff06eSLokesh Vutla main_udmass_inta: msi-controller@33d00000 { 89*c4dff06eSLokesh Vutla compatible = "ti,sci-inta"; 90*c4dff06eSLokesh Vutla reg = <0x0 0x33d00000 0x0 0x100000>; 91*c4dff06eSLokesh Vutla interrupt-controller; 92*c4dff06eSLokesh Vutla msi-controller; 93*c4dff06eSLokesh Vutla interrupt-parent = <&main_navss_intr>; 94*c4dff06eSLokesh Vutla ti,sci = <&dmsc>; 95*c4dff06eSLokesh Vutla ti,sci-dev-id = <179>; 96*c4dff06eSLokesh Vutla ti,interrupt-ranges = <0 0 256>; 97*c4dff06eSLokesh Vutla }; 98*c4dff06eSLokesh Vutla }; 99