| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/interrupt-controller/ti,sci-inta.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Texas Instruments K3 Interrupt Aggregator
- maintainers:
- - Lokesh Vutla <lokeshvutla@ti.com>
- allOf:
- - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
- description: |
- The Interrupt Aggregator (INTA) provides a centralized machine
- which handles the termination of system events to that they can
- be coherently processed by the host(s) in the system. A maximum
- of 64 events can be mapped to a single interrupt.
- Interrupt Aggregator
- +-----------------------------------------+
- | Intmap VINT |
- | +--------------+ +------------+ |
- m ------>| | vint | bit | | 0 |.....|63| vint0 |
- . | +--------------+ +------------+ | +------+
- . | . . | | HOST |
- Globalevents ------>| . . |----->| IRQ |
- . | . . | | CTRL |
- . | . . | +------+
- n ------>| +--------------+ +------------+ |
- | | vint | bit | | 0 |.....|63| vintx |
- | +--------------+ +------------+ |
- | |
- | Unmap |
- | +--------------+ |
- Unmapped events ---->| | umapidx |-------------------------> Globalevents
- | +--------------+ |
- | |
- +-----------------------------------------+
- Configuration of these Intmap registers that maps global events to vint is
- done by a system controller (like the Device Memory and Security Controller
- on AM654 SoC). Driver should request the system controller to get the range
- of global events and vints assigned to the requesting host. Management
- of these requested resources should be handled by driver and requests
- system controller to map specific global event to vint, bit pair.
- Communication between the host processor running an OS and the system
- controller happens through a protocol called TI System Control Interface
- (TISCI protocol).
- properties:
- compatible:
- const: ti,sci-inta
- reg:
- maxItems: 1
- interrupt-controller: true
- '#interrupt-cells':
- const: 0
- msi-controller: true
- ti,interrupt-ranges:
- $ref: /schemas/types.yaml#/definitions/uint32-matrix
- description: |
- Interrupt ranges that converts the INTA output hw irq numbers
- to parents's input interrupt numbers.
- items:
- items:
- - description: |
- "output_irq" specifies the base for inta output irq
- - description: |
- "parent's input irq" specifies the base for parent irq
- - description: |
- "limit" specifies the limit for translation
- ti,unmapped-event-sources:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- items:
- maxItems: 1
- description:
- Array of phandles to DMA controllers where the unmapped events originate.
- power-domains:
- maxItems: 1
- required:
- - compatible
- - reg
- - interrupt-controller
- - msi-controller
- - ti,sci
- - ti,sci-dev-id
- - ti,interrupt-ranges
- unevaluatedProperties: false
- examples:
- - |
- bus {
- #address-cells = <2>;
- #size-cells = <2>;
- main_udmass_inta: msi-controller@33d00000 {
- compatible = "ti,sci-inta";
- reg = <0x0 0x33d00000 0x0 0x100000>;
- interrupt-controller;
- msi-controller;
- interrupt-parent = <&main_navss_intr>;
- ti,sci = <&dmsc>;
- ti,sci-dev-id = <179>;
- ti,interrupt-ranges = <0 0 256>;
- };
- };
|