xref: /linux/Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
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