Skip to content

Commit 1267d98

Browse files
prabhakarladMarc Zyngier
authored andcommitted
dt-bindings: interrupt-controller: sifive,plic: Document Renesas RZ/Five SoC
Renesas RZ/Five (R9A07G043) SoC is equipped with NCEPLIC100 RISC-V platform level interrupt controller from Andes Technology. NCEPLIC100 ignores subsequent EDGE interrupts until the previous EDGE interrupt is completed, due to this issue we have to follow different interrupt flow for EDGE and LEVEL interrupts. This patch documents Renesas RZ/Five (R9A07G043) SoC. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220630100241.35233-2-samuel@sholland.org
1 parent a111daf commit 1267d98

File tree

1 file changed

+59
-5
lines changed

1 file changed

+59
-5
lines changed

Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml

Lines changed: 59 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,14 @@ description:
2626
with priority below this threshold will not cause the PLIC to raise its
2727
interrupt line leading to the context.
2828

29-
While the PLIC supports both edge-triggered and level-triggered interrupts,
30-
interrupt handlers are oblivious to this distinction and therefore it is not
31-
specified in the PLIC device-tree binding.
29+
The PLIC supports both edge-triggered and level-triggered interrupts. For
30+
edge-triggered interrupts, the RISC-V PLIC spec allows two responses to edges
31+
seen while an interrupt handler is active; the PLIC may either queue them or
32+
ignore them. In the first case, handlers are oblivious to the trigger type, so
33+
it is not included in the interrupt specifier. In the second case, software
34+
needs to know the trigger type, so it can reorder the interrupt flow to avoid
35+
missing interrupts. This special handling is needed by at least the Renesas
36+
RZ/Five SoC (AX45MP AndesCore with a NCEPLIC100).
3237

3338
While the RISC-V ISA doesn't specify a memory layout for the PLIC, the
3439
"sifive,plic-1.0.0" device is a concrete implementation of the PLIC that
@@ -47,6 +52,10 @@ maintainers:
4752
properties:
4853
compatible:
4954
oneOf:
55+
- items:
56+
- enum:
57+
- renesas,r9a07g043-plic
58+
- const: andestech,nceplic100
5059
- items:
5160
- enum:
5261
- sifive,fu540-c000-plic
@@ -64,8 +73,7 @@ properties:
6473
'#address-cells':
6574
const: 0
6675

67-
'#interrupt-cells':
68-
const: 1
76+
'#interrupt-cells': true
6977

7078
interrupt-controller: true
7179

@@ -82,6 +90,12 @@ properties:
8290
description:
8391
Specifies how many external interrupts are supported by this controller.
8492

93+
clocks: true
94+
95+
power-domains: true
96+
97+
resets: true
98+
8599
required:
86100
- compatible
87101
- '#address-cells'
@@ -91,6 +105,46 @@ required:
91105
- interrupts-extended
92106
- riscv,ndev
93107

108+
allOf:
109+
- if:
110+
properties:
111+
compatible:
112+
contains:
113+
enum:
114+
- andestech,nceplic100
115+
116+
then:
117+
properties:
118+
'#interrupt-cells':
119+
const: 2
120+
121+
else:
122+
properties:
123+
'#interrupt-cells':
124+
const: 1
125+
126+
- if:
127+
properties:
128+
compatible:
129+
contains:
130+
const: renesas,r9a07g043-plic
131+
132+
then:
133+
properties:
134+
clocks:
135+
maxItems: 1
136+
137+
power-domains:
138+
maxItems: 1
139+
140+
resets:
141+
maxItems: 1
142+
143+
required:
144+
- clocks
145+
- power-domains
146+
- resets
147+
94148
additionalProperties: false
95149

96150
examples:

0 commit comments

Comments
 (0)