From: Radu Rendec <radu@rendec.net>
To: Eliav Farber <farbere@amazon.com>,
Thomas Gleixner <tglx@kernel.org>,
Talel Shenhar <talel@amazon.com>
Cc: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 5/8] dt-bindings: interrupt-controller: amazon,al-fic: add mask selection
Date: Sun, 04 Oct 2026 17:06:03 -0400 [thread overview]
Message-ID: <b5f627c814a783f989dc4e9edc2d1c17eaacf1d9.camel@rendec.net> (raw)
In-Reply-To: <20260927080637.27285-6-farbere@amazon.com>
On Sun, 2026-09-27 at 08:06 +0000, Eliav Farber wrote:
> 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@amazon.com>
> ---
> v2: redesigned in response to Conor Dooley's review of v1.
> - Drop the two proposed per-output compatible strings
> (amazon,al-fic-error / amazon,al-fic-fatal). A node describes one group,
> and a controller reports its revision in the group control register
> (bits 29-28), so no per-revision or per-output compatible is needed.
> - Instead add an optional amazon,al-fic-mask property (info, error, fatal;
> default info) selecting which output a group drives. Existing
> amazon,al-fic nodes keep behaving as before.
> - Rewrite the commit message to describe the hardware and the group
> granularity, and add an example fragment to the YAML, as requested.
>
> .../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 26bc05dee0bc..1ebf9a427f2f 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";
> };
Reviewed-by: Radu Rendec <radu@rendec.net>
next prev parent reply other threads:[~2026-10-04 21:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-27 8:06 [PATCH v2 0/8] irqchip/al-fic: shared parent IRQ, error/fatal outputs and affinity Eliav Farber
2026-09-27 8:06 ` [PATCH v2 1/8] irqchip/al-fic: fix argument alignment and a repeated word Eliav Farber
2026-10-04 16:15 ` Radu Rendec
2026-09-27 8:06 ` [PATCH v2 2/8] irqchip/al-fic: use %pOF and raise init log level Eliav Farber
2026-10-04 16:25 ` Radu Rendec
2026-09-27 8:06 ` [PATCH v2 3/8] irqchip/al-fic: keep the device_node instead of a cached name string Eliav Farber
2026-10-04 17:40 ` Radu Rendec
2026-10-05 11:17 ` Farber, Eliav
2026-10-08 1:14 ` Radu Rendec
2026-09-27 8:06 ` [PATCH v2 4/8] irqchip/al-fic: switch to shared parent interrupt Eliav Farber
2026-10-04 19:30 ` Radu Rendec
2026-10-05 11:18 ` Farber, Eliav
2026-09-27 8:06 ` [PATCH v2 5/8] dt-bindings: interrupt-controller: amazon,al-fic: add mask selection Eliav Farber
2026-09-28 16:50 ` Conor Dooley
2026-10-04 21:06 ` Radu Rendec [this message]
2026-09-27 8:06 ` [PATCH v2 6/8] irqchip/al-fic: support error and fatal outputs and FIC v2 Eliav Farber
2026-10-05 1:01 ` Radu Rendec
2026-10-05 11:19 ` Farber, Eliav
2026-10-08 1:19 ` Radu Rendec
2026-10-08 8:20 ` Farber, Eliav
2026-09-27 8:06 ` [PATCH v2 7/8] irqchip/al-fic: add support for FIC v3 Eliav Farber
2026-10-05 1:04 ` Radu Rendec
2026-09-27 8:06 ` [PATCH v2 8/8] irqchip/al-fic: add irq_set_affinity callback Eliav Farber
2026-10-05 1:25 ` Radu Rendec
2026-10-05 11:20 ` Farber, Eliav
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b5f627c814a783f989dc4e9edc2d1c17eaacf1d9.camel@rendec.net \
--to=radu@rendec.net \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=farbere@amazon.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=talel@amazon.com \
--cc=tglx@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.