mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-18 06:33:43 -04:00
dt-bindings: interrupt-controller: ti,sci-intr: Per-line interrupt-types
Update the bindings to allow setting per-line interrupt-types. Some Interrupt Router instances can only work with a specific trigger type (edge or level), while others act as simple passthroughs that preserve the source interrupt type unchanged. Make "ti,intr-trigger-type" property optional, with its absence indicating that the router acts as a passthrough. When absent, "#interrupt-cells" must be 2 to allow each interrupt source to specify its trigger type per-line. Signed-off-by: Aniket Limaye <a-limaye@ti.com> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://patch.msgid.link/20260123-ul-driver-i2c-j722s-v4-1-b08625c487d5@ti.com
This commit is contained in:
committed by
Thomas Gleixner
parent
3a74e73b86
commit
7a30a7a6c8
@@ -15,8 +15,7 @@ allOf:
|
||||
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.
|
||||
to be driven per N output.
|
||||
|
||||
Interrupt Router
|
||||
+----------------------+
|
||||
@@ -64,9 +63,14 @@ properties:
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 1
|
||||
enum: [1, 2]
|
||||
description: |
|
||||
The 1st cell should contain interrupt router input hw number.
|
||||
Number of cells in interrupt specifier. Depends on ti,intr-trigger-type:
|
||||
- If ti,intr-trigger-type is present: must be 1
|
||||
The 1st cell should contain interrupt router input hw number.
|
||||
- If ti,intr-trigger-type is absent: must be 2
|
||||
The 1st cell should contain interrupt router input hw number.
|
||||
The 2nd cell should contain interrupt trigger type (preserved by router).
|
||||
|
||||
ti,interrupt-ranges:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
@@ -82,9 +86,22 @@ properties:
|
||||
- description: |
|
||||
"limit" specifies the limit for translation
|
||||
|
||||
if:
|
||||
required:
|
||||
- ti,intr-trigger-type
|
||||
then:
|
||||
properties:
|
||||
'#interrupt-cells':
|
||||
const: 1
|
||||
description: Interrupt ID only. Interrupt type is specified globally
|
||||
else:
|
||||
properties:
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
description: Interrupt ID and corresponding interrupt type
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- ti,intr-trigger-type
|
||||
- interrupt-controller
|
||||
- '#interrupt-cells'
|
||||
- ti,sci
|
||||
@@ -105,3 +122,14 @@ examples:
|
||||
ti,sci-dev-id = <131>;
|
||||
ti,interrupt-ranges = <0 360 32>;
|
||||
};
|
||||
|
||||
- |
|
||||
interrupt-controller {
|
||||
compatible = "ti,sci-intr";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&gic500>;
|
||||
#interrupt-cells = <2>;
|
||||
ti,sci = <&dmsc>;
|
||||
ti,sci-dev-id = <131>;
|
||||
ti,interrupt-ranges = <0 360 32>;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user