
Pull irq fixes from Thomas Gleixner: "A set of fixes for interrupt chip drivers: - Fix the fallout of the IPI as interrupt conversion in Kconfig and the BCM2836 interrupt chip driver - Fixes for interrupt affinity setting and the handling of hierarchical irq domains in the SiFive PLIC driver - Make the unmapped event handling in the TI SCI driver work correctly - A few minor fixes and cleanups in various chip drivers and Kconfig" * tag 'irq-urgent-2020-11-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: dt-bindings: irqchip: ti, sci-inta: Fix diagram indentation for unmapped events irqchip/ti-sci-inta: Add support for unmapped event handling dt-bindings: irqchip: ti, sci-inta: Update for unmapped event handling irqchip/renesas-intc-irqpin: Merge irlm_bit and needs_irlm irqchip/sifive-plic: Fix chip_data access within a hierarchy irqchip/sifive-plic: Fix broken irq_set_affinity() callback irqchip/stm32-exti: Add all LP timer exti direct events support irqchip/bcm2836: Fix missing __init annotation irqchip/mips: Drop selection of IRQ_DOMAIN_HIERARCHY irqchip/mst: Make mst_intc_of_init static irqchip/mst: MST_IRQ should depend on ARCH_MEDIATEK or ARCH_MSTARV7 genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY
111 lines
4.0 KiB
YAML
111 lines
4.0 KiB
YAML
# 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
|
|
|
|
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
|
|
description:
|
|
Array of phandles to DMA controllers where the unmapped events originate.
|
|
|
|
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>;
|
|
};
|
|
};
|