[tip: irq/drivers] dt-bindings: interrupt-controller: amazon,al-fic: Add mask selection
From: tip-bot2 for Eliav Farber
Date: Thu Oct 15 2026 - 08:40:22 EST
The following commit has been merged into the irq/drivers branch of tip:
Commit-ID: 485ab2a36d36edb2bb630d2491d2ab7ed11178fc
Gitweb: https://git.kernel.org/tip/485ab2a36d36edb2bb630d2491d2ab7ed11178fc
Author: Eliav Farber <farbere@xxxxxxxxxx>
AuthorDate: Sun, 11 Oct 2026 05:04:45
Committer: Thomas Gleixner <tglx@xxxxxxxxxx>
CommitterDate: Thu, 15 Oct 2026 14:25:07 +02:00
dt-bindings: interrupt-controller: amazon,al-fic: Add mask selection
The block this driver calls a FIC is the generic Annapurna Labs interrupt
controller. It is built from groups of up to 32 triggers each; the number
of groups differs from one controller to another, and each group has its
own 0x40 register block.
A node in this binding describes one group, not a whole controller. reg
points at that group's 0x40 block, and the 32 hwirqs of the domain are
that group's triggers. A controller with several groups appears as several
nodes, and controllers cascade when a tree needs more triggers than one
controller has.
A group has one cause register and three mask registers, which decide
which output a set cause bit drives:
0x10 info mask gates the info output
0x2c error mask gates the error output
0x34 fatal mask gates the fatal output
The three outputs are aggregated into three separate interrupt trees
(info, error, fatal); mapping one event to more than one severity is
forbidden by the interrupt methodology, so a group belongs to exactly one
tree. Which output a group drives is fixed when the SoC is wired and is
not discoverable from any register, so it must be described in the
devicetree.
The error and fatal outputs, and their mask registers, exist only on
controller revisions that implement them; earlier revisions provide the
info output only. A controller reports its revision in the group control
register (bits 29-28), so the revision itself does not need to appear in
the devicetree and no per-revision compatible string is needed.
Describe which output a group drives with a new optional property,
amazon,al-fic-mask (info, error or fatal; default info).
Signed-off-by: Eliav Farber <farbere@xxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxx>
Reviewed-by: Radu Rendec <radu@xxxxxxxxxx>
Acked-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
Link: https://patch.msgid.link/20261011050449.41903-7-farbere@xxxxxxxxxx
---
Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.yaml | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.yaml b/Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.yaml
index 26bc05d..1ebf9a4 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/amazon,al-fic.yaml
@@ -24,6 +24,19 @@ properties:
interrupts:
maxItems: 1
+ amazon,al-fic-mask:
+ $ref: /schemas/types.yaml#/definitions/string
+ description:
+ Selects which of the controller's severity outputs this group drives,
+ and thus which mask register the driver programs. A group has one cause
+ register and three severity outputs - info, error and fatal - each
+ gated by its own mask register. Each output is aggregated into a
+ separate interrupt tree, and a group belongs to exactly one of them.
+ The error and fatal outputs exist only on controller revisions that
+ implement them; earlier revisions provide the info output only.
+ enum: [info, error, fatal]
+ default: info
+
required:
- compatible
- reg
@@ -39,8 +52,9 @@ examples:
interrupt-controller@fd8a8500 {
compatible = "amazon,al-fic";
- reg = <0xfd8a8500 0x1000>;
+ reg = <0xfd8a8500 0x40>;
interrupt-controller;
#interrupt-cells = <2>;
interrupts = <GIC_SPI 0x0 IRQ_TYPE_LEVEL_HIGH>;
+ amazon,al-fic-mask = "error";
};