-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'irq-urgent-2020-08-30' of git://git.kernel.org/pub/scm/lin…
…ux/kernel/git/tip/tip Pull irq fixes from Thomas Gleixner: "A set of fixes for interrupt chip drivers: - Revert the platform driver conversion of interrupt chip drivers as it turned out to create more problems than it solves. - Fix a trivial typo in the new module helpers which made probing reliably fail. - Small fixes in the STM32 and MIPS Ingenic drivers - The TI firmware rework which had badly managed dependencies and had to wait post rc1" * tag 'irq-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/ingenic: Leave parent IRQ unmasked on suspend irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by mistake irqchip: Revert modular support for drivers using IRQCHIP_PLATFORM_DRIVER helperse irqchip: Fix probing deferal when using IRQCHIP_PLATFORM_DRIVER helpers arm64: dts: k3-am65: Update the RM resource types arm64: dts: k3-am65: ti-sci-inta/intr: Update to latest bindings arm64: dts: k3-j721e: ti-sci-inta/intr: Update to latest bindings irqchip/ti-sci-inta: Add support for INTA directly connecting to GIC irqchip/ti-sci-inta: Do not store TISCI device id in platform device id field dt-bindings: irqchip: Convert ti, sci-inta bindings to yaml dt-bindings: irqchip: ti, sci-inta: Update docs to support different parent. irqchip/ti-sci-intr: Add support for INTR being a parent to INTR dt-bindings: irqchip: Convert ti, sci-intr bindings to yaml dt-bindings: irqchip: ti, sci-intr: Update bindings to drop the usage of gic as parent firmware: ti_sci: Add support for getting resource with subtype firmware: ti_sci: Drop unused structure ti_sci_rm_type_map firmware: ti_sci: Drop the device id to resource type translation
- Loading branch information
Showing
23 changed files
with
534 additions
and
394 deletions.
There are no files selected for viewing
66 changes: 0 additions & 66 deletions
66
Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
This file was deleted.
Oops, something went wrong.
98 changes: 98 additions & 0 deletions
98
Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# 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 | | ||
| +--------------+ +------------+ | | ||
| | | ||
+-----------------------------------------+ | ||
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 | ||
required: | ||
- compatible | ||
- reg | ||
- interrupt-controller | ||
- msi-controller | ||
- ti,sci | ||
- ti,sci-dev-id | ||
- ti,interrupt-ranges | ||
|
||
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>; | ||
}; | ||
}; |
82 changes: 0 additions & 82 deletions
82
Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
This file was deleted.
Oops, something went wrong.
102 changes: 102 additions & 0 deletions
102
Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/interrupt-controller/ti,sci-intr.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Texas Instruments K3 Interrupt Router | ||
|
||
maintainers: | ||
- Lokesh Vutla <lokeshvutla@ti.com> | ||
|
||
allOf: | ||
- $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml# | ||
|
||
description: | | ||
The Interrupt Router (INTR) module provides a mechanism to mux M | ||
interrupt inputs to N interrupt outputs, where all M inputs are selectable | ||
to be driven per N output. An Interrupt Router can either handle edge | ||
triggered or level triggered interrupts and that is fixed in hardware. | ||
Interrupt Router | ||
+----------------------+ | ||
| Inputs Outputs | | ||
+-------+ | +------+ +-----+ | | ||
| GPIO |----------->| | irq0 | | 0 | | Host IRQ | ||
+-------+ | +------+ +-----+ | controller | ||
| . . | +-------+ | ||
+-------+ | . . |----->| IRQ | | ||
| INTA |----------->| . . | +-------+ | ||
+-------+ | . +-----+ | | ||
| +------+ | N | | | ||
| | irqM | +-----+ | | ||
| +------+ | | ||
| | | ||
+----------------------+ | ||
There is one register per output (MUXCNTL_N) that controls the selection. | ||
Configuration of these MUXCNTL_N registers is done by a system controller | ||
(like the Device Memory and Security Controller on K3 AM654 SoC). System | ||
controller will keep track of the used and unused registers within the Router. | ||
Driver should request the system controller to get the range of GIC IRQs | ||
assigned to the requesting hosts. It is the drivers responsibility to keep | ||
track of Host IRQs. | ||
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-intr | ||
|
||
ti,intr-trigger-type: | ||
$ref: /schemas/types.yaml#/definitions/uint32 | ||
enum: [1, 4] | ||
description: | | ||
Should be one of the following. | ||
1 = If intr supports edge triggered interrupts. | ||
4 = If intr supports level triggered interrupts. | ||
interrupt-controller: true | ||
|
||
'#interrupt-cells': | ||
const: 1 | ||
description: | | ||
The 1st cell should contain interrupt router input hw number. | ||
ti,interrupt-ranges: | ||
$ref: /schemas/types.yaml#/definitions/uint32-matrix | ||
description: | | ||
Interrupt ranges that converts the INTR output hw irq numbers | ||
to parents's input interrupt numbers. | ||
items: | ||
items: | ||
- description: | | ||
"output_irq" specifies the base for intr output irq | ||
- description: | | ||
"parent's input irq" specifies the base for parent irq | ||
- description: | | ||
"limit" specifies the limit for translation | ||
required: | ||
- compatible | ||
- ti,intr-trigger-type | ||
- interrupt-controller | ||
- '#interrupt-cells' | ||
- ti,sci | ||
- ti,sci-dev-id | ||
- ti,interrupt-ranges | ||
|
||
examples: | ||
- | | ||
main_gpio_intr: interrupt-controller0 { | ||
compatible = "ti,sci-intr"; | ||
ti,intr-trigger-type = <1>; | ||
interrupt-controller; | ||
interrupt-parent = <&gic500>; | ||
#interrupt-cells = <1>; | ||
ti,sci = <&dmsc>; | ||
ti,sci-dev-id = <131>; | ||
ti,interrupt-ranges = <0 360 32>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.