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