Skip to content

Commit d2283cd

Browse files
committed
Merge tag 'irq-urgent-2020-08-30' of git://git.kernel.org/pub/scm/linux/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
2 parents 0063a82 + ceb2465 commit d2283cd

23 files changed

+534
-394
lines changed

Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt

Lines changed: 0 additions & 66 deletions
This file was deleted.
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interrupt-controller/ti,sci-inta.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments K3 Interrupt Aggregator
8+
9+
maintainers:
10+
- Lokesh Vutla <[email protected]>
11+
12+
allOf:
13+
- $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
14+
15+
description: |
16+
The Interrupt Aggregator (INTA) provides a centralized machine
17+
which handles the termination of system events to that they can
18+
be coherently processed by the host(s) in the system. A maximum
19+
of 64 events can be mapped to a single interrupt.
20+
21+
Interrupt Aggregator
22+
+-----------------------------------------+
23+
| Intmap VINT |
24+
| +--------------+ +------------+ |
25+
m ------>| | vint | bit | | 0 |.....|63| vint0 |
26+
. | +--------------+ +------------+ | +------+
27+
. | . . | | HOST |
28+
Globalevents ------>| . . |----->| IRQ |
29+
. | . . | | CTRL |
30+
. | . . | +------+
31+
n ------>| +--------------+ +------------+ |
32+
| | vint | bit | | 0 |.....|63| vintx |
33+
| +--------------+ +------------+ |
34+
| |
35+
+-----------------------------------------+
36+
37+
Configuration of these Intmap registers that maps global events to vint is
38+
done by a system controller (like the Device Memory and Security Controller
39+
on AM654 SoC). Driver should request the system controller to get the range
40+
of global events and vints assigned to the requesting host. Management
41+
of these requested resources should be handled by driver and requests
42+
system controller to map specific global event to vint, bit pair.
43+
44+
Communication between the host processor running an OS and the system
45+
controller happens through a protocol called TI System Control Interface
46+
(TISCI protocol).
47+
48+
properties:
49+
compatible:
50+
const: ti,sci-inta
51+
52+
reg:
53+
maxItems: 1
54+
55+
interrupt-controller: true
56+
57+
msi-controller: true
58+
59+
ti,interrupt-ranges:
60+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
61+
description: |
62+
Interrupt ranges that converts the INTA output hw irq numbers
63+
to parents's input interrupt numbers.
64+
items:
65+
items:
66+
- description: |
67+
"output_irq" specifies the base for inta output irq
68+
- description: |
69+
"parent's input irq" specifies the base for parent irq
70+
- description: |
71+
"limit" specifies the limit for translation
72+
73+
required:
74+
- compatible
75+
- reg
76+
- interrupt-controller
77+
- msi-controller
78+
- ti,sci
79+
- ti,sci-dev-id
80+
- ti,interrupt-ranges
81+
82+
examples:
83+
- |
84+
bus {
85+
#address-cells = <2>;
86+
#size-cells = <2>;
87+
88+
main_udmass_inta: msi-controller@33d00000 {
89+
compatible = "ti,sci-inta";
90+
reg = <0x0 0x33d00000 0x0 0x100000>;
91+
interrupt-controller;
92+
msi-controller;
93+
interrupt-parent = <&main_navss_intr>;
94+
ti,sci = <&dmsc>;
95+
ti,sci-dev-id = <179>;
96+
ti,interrupt-ranges = <0 0 256>;
97+
};
98+
};

Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt

Lines changed: 0 additions & 82 deletions
This file was deleted.
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interrupt-controller/ti,sci-intr.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments K3 Interrupt Router
8+
9+
maintainers:
10+
- Lokesh Vutla <[email protected]>
11+
12+
allOf:
13+
- $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
14+
15+
description: |
16+
The Interrupt Router (INTR) module provides a mechanism to mux M
17+
interrupt inputs to N interrupt outputs, where all M inputs are selectable
18+
to be driven per N output. An Interrupt Router can either handle edge
19+
triggered or level triggered interrupts and that is fixed in hardware.
20+
21+
Interrupt Router
22+
+----------------------+
23+
| Inputs Outputs |
24+
+-------+ | +------+ +-----+ |
25+
| GPIO |----------->| | irq0 | | 0 | | Host IRQ
26+
+-------+ | +------+ +-----+ | controller
27+
| . . | +-------+
28+
+-------+ | . . |----->| IRQ |
29+
| INTA |----------->| . . | +-------+
30+
+-------+ | . +-----+ |
31+
| +------+ | N | |
32+
| | irqM | +-----+ |
33+
| +------+ |
34+
| |
35+
+----------------------+
36+
37+
There is one register per output (MUXCNTL_N) that controls the selection.
38+
Configuration of these MUXCNTL_N registers is done by a system controller
39+
(like the Device Memory and Security Controller on K3 AM654 SoC). System
40+
controller will keep track of the used and unused registers within the Router.
41+
Driver should request the system controller to get the range of GIC IRQs
42+
assigned to the requesting hosts. It is the drivers responsibility to keep
43+
track of Host IRQs.
44+
45+
Communication between the host processor running an OS and the system
46+
controller happens through a protocol called TI System Control Interface
47+
(TISCI protocol).
48+
49+
properties:
50+
compatible:
51+
const: ti,sci-intr
52+
53+
ti,intr-trigger-type:
54+
$ref: /schemas/types.yaml#/definitions/uint32
55+
enum: [1, 4]
56+
description: |
57+
Should be one of the following.
58+
1 = If intr supports edge triggered interrupts.
59+
4 = If intr supports level triggered interrupts.
60+
61+
interrupt-controller: true
62+
63+
'#interrupt-cells':
64+
const: 1
65+
description: |
66+
The 1st cell should contain interrupt router input hw number.
67+
68+
ti,interrupt-ranges:
69+
$ref: /schemas/types.yaml#/definitions/uint32-matrix
70+
description: |
71+
Interrupt ranges that converts the INTR output hw irq numbers
72+
to parents's input interrupt numbers.
73+
items:
74+
items:
75+
- description: |
76+
"output_irq" specifies the base for intr output irq
77+
- description: |
78+
"parent's input irq" specifies the base for parent irq
79+
- description: |
80+
"limit" specifies the limit for translation
81+
82+
required:
83+
- compatible
84+
- ti,intr-trigger-type
85+
- interrupt-controller
86+
- '#interrupt-cells'
87+
- ti,sci
88+
- ti,sci-dev-id
89+
- ti,interrupt-ranges
90+
91+
examples:
92+
- |
93+
main_gpio_intr: interrupt-controller0 {
94+
compatible = "ti,sci-intr";
95+
ti,intr-trigger-type = <1>;
96+
interrupt-controller;
97+
interrupt-parent = <&gic500>;
98+
#interrupt-cells = <1>;
99+
ti,sci = <&dmsc>;
100+
ti,sci-dev-id = <131>;
101+
ti,interrupt-ranges = <0 360 32>;
102+
};

MAINTAINERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17117,8 +17117,8 @@ S: Maintained
1711717117
F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
1711817118
F: Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
1711917119
F: Documentation/devicetree/bindings/clock/ti,sci-clk.txt
17120-
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
17121-
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
17120+
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.yaml
17121+
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml
1712217122
F: Documentation/devicetree/bindings/reset/ti,sci-reset.txt
1712317123
F: Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
1712417124
F: drivers/clk/keystone/sci-clk.c

0 commit comments

Comments
 (0)