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 62d9fc272bSApurva Nandan '#interrupt-cells': 63d9fc272bSApurva Nandan const: 0 64d9fc272bSApurva Nandan 65c4dff06eSLokesh Vutla msi-controller: true 66c4dff06eSLokesh Vutla 67c4dff06eSLokesh Vutla ti,interrupt-ranges: 68c4dff06eSLokesh Vutla $ref: /schemas/types.yaml#/definitions/uint32-matrix 69c4dff06eSLokesh Vutla description: | 70c4dff06eSLokesh Vutla Interrupt ranges that converts the INTA output hw irq numbers 71c4dff06eSLokesh Vutla to parents's input interrupt numbers. 72c4dff06eSLokesh Vutla items: 73c4dff06eSLokesh Vutla items: 74c4dff06eSLokesh Vutla - description: | 75c4dff06eSLokesh Vutla "output_irq" specifies the base for inta output irq 76c4dff06eSLokesh Vutla - description: | 77c4dff06eSLokesh Vutla "parent's input irq" specifies the base for parent irq 78c4dff06eSLokesh Vutla - description: | 79c4dff06eSLokesh Vutla "limit" specifies the limit for translation 80c4dff06eSLokesh Vutla 81bb2bd7c7SPeter Ujfalusi ti,unmapped-event-sources: 82d69c6dddSRob Herring $ref: /schemas/types.yaml#/definitions/phandle-array 8339bd2b6aSRob Herring items: 8439bd2b6aSRob Herring maxItems: 1 85bb2bd7c7SPeter Ujfalusi description: 86bb2bd7c7SPeter Ujfalusi Array of phandles to DMA controllers where the unmapped events originate. 87bb2bd7c7SPeter Ujfalusi 88a0108409SVignesh Raghavendra power-domains: 89a0108409SVignesh Raghavendra maxItems: 1 90a0108409SVignesh Raghavendra 91c4dff06eSLokesh Vutlarequired: 92c4dff06eSLokesh Vutla - compatible 93c4dff06eSLokesh Vutla - reg 94c4dff06eSLokesh Vutla - interrupt-controller 95c4dff06eSLokesh Vutla - msi-controller 96c4dff06eSLokesh Vutla - ti,sci 97c4dff06eSLokesh Vutla - ti,sci-dev-id 98c4dff06eSLokesh Vutla - ti,interrupt-ranges 99c4dff06eSLokesh Vutla 100f84e2c5cSRob HerringunevaluatedProperties: false 101f84e2c5cSRob Herring 102c4dff06eSLokesh Vutlaexamples: 103c4dff06eSLokesh Vutla - | 104c4dff06eSLokesh Vutla bus { 105c4dff06eSLokesh Vutla #address-cells = <2>; 106c4dff06eSLokesh Vutla #size-cells = <2>; 107c4dff06eSLokesh Vutla 108c4dff06eSLokesh Vutla main_udmass_inta: msi-controller@33d00000 { 109c4dff06eSLokesh Vutla compatible = "ti,sci-inta"; 110c4dff06eSLokesh Vutla reg = <0x0 0x33d00000 0x0 0x100000>; 111c4dff06eSLokesh Vutla interrupt-controller; 112*c5f02e02SRob Herring (Arm) #interrupt-cells = <0>; 113c4dff06eSLokesh Vutla msi-controller; 114c4dff06eSLokesh Vutla interrupt-parent = <&main_navss_intr>; 115c4dff06eSLokesh Vutla ti,sci = <&dmsc>; 116c4dff06eSLokesh Vutla ti,sci-dev-id = <179>; 117c4dff06eSLokesh Vutla ti,interrupt-ranges = <0 0 256>; 118c4dff06eSLokesh Vutla }; 119c4dff06eSLokesh Vutla }; 120