The Loongson-2K0500/2K1000 CPUs have 64 interrupt sources as inputs, and
a route-mapped node handles up to 32 interrupt sources, so two liointc
nodes are defined in dts{i}.
Of course, we need to ensure that the routing outputs (intx) of the two
nodes cannot conflict.
For example, in Loongson-2K1000, 'int0' is typically used by the liointc0
node, then the liointc1 node can only use the outputs starting with
'int1'.
So "interrupt-names" should be defined by "pattern".
This fixes dtbs_check warning:
DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
arch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: interrupt-names:0: 'int0' was expected
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
arch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
DTC_CHK arch/loongarch/boot/dts/loongson-2k1000-ref.dtb
arch/loongarch/boot/dts/loongson-2k1000-ref.dtb: interrupt-controller@1fe01440: interrupt-names:0: 'int0' was expected
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
arch/loongarch/boot/dts/loongson-2k1000-ref.dtb: interrupt-controller@1fe01440: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
---
.../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml b/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
index 7393d7dfbe82..a90c609d351e 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
@@ -54,11 +54,9 @@ properties:
interrupt-names:
description: List of names for the parent interrupts.
items:
- - const: int0
- - const: int1
- - const: int2
- - const: int3
+ pattern: int[0-3]
minItems: 1
+ maxItems: 4
'#interrupt-cells':
const: 2
@@ -87,6 +85,7 @@ required:
- compatible
- reg
- interrupts
+ - interrupt-names
- interrupt-controller
- '#interrupt-cells'
- loongson,parent-int-map
--
2.39.3
On Tue, Oct 31, 2023 at 10:36:38AM +0800, Binbin Zhou wrote:
> The Loongson-2K0500/2K1000 CPUs have 64 interrupt sources as inputs, and
> a route-mapped node handles up to 32 interrupt sources, so two liointc
> nodes are defined in dts{i}.
> Of course, we need to ensure that the routing outputs (intx) of the two
> nodes cannot conflict.
>
> For example, in Loongson-2K1000, 'int0' is typically used by the liointc0
> node, then the liointc1 node can only use the outputs starting with
> 'int1'.
>
> So "interrupt-names" should be defined by "pattern".
>
> This fixes dtbs_check warning:
>
> DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
> arch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: interrupt-names:0: 'int0' was expected
> From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> arch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
> From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> DTC_CHK arch/loongarch/boot/dts/loongson-2k1000-ref.dtb
> arch/loongarch/boot/dts/loongson-2k1000-ref.dtb: interrupt-controller@1fe01440: interrupt-names:0: 'int0' was expected
> From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> arch/loongarch/boot/dts/loongson-2k1000-ref.dtb: interrupt-controller@1fe01440: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
> From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
>
> Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
> ---
> .../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml b/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> index 7393d7dfbe82..a90c609d351e 100644
> --- a/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> +++ b/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> @@ -54,11 +54,9 @@ properties:
> interrupt-names:
> description: List of names for the parent interrupts.
> items:
> - - const: int0
> - - const: int1
> - - const: int2
> - - const: int3
> + pattern: int[0-3]
> minItems: 1
> + maxItems: 4
>
> '#interrupt-cells':
> const: 2
> @@ -87,6 +85,7 @@ required:
> - compatible
> - reg
> - interrupts
> + - interrupt-names
A new required property is an ABI break. Is that okay for this platform?
The commit msg should answer that if so.
> - interrupt-controller
> - '#interrupt-cells'
> - loongson,parent-int-map
> --
> 2.39.3
>
On Tue, Oct 31, 2023 at 11:53 PM Rob Herring <robh@kernel.org> wrote:
>
> On Tue, Oct 31, 2023 at 10:36:38AM +0800, Binbin Zhou wrote:
> > The Loongson-2K0500/2K1000 CPUs have 64 interrupt sources as inputs, and
> > a route-mapped node handles up to 32 interrupt sources, so two liointc
> > nodes are defined in dts{i}.
> > Of course, we need to ensure that the routing outputs (intx) of the two
> > nodes cannot conflict.
> >
> > For example, in Loongson-2K1000, 'int0' is typically used by the liointc0
> > node, then the liointc1 node can only use the outputs starting with
> > 'int1'.
> >
> > So "interrupt-names" should be defined by "pattern".
> >
> > This fixes dtbs_check warning:
> >
> > DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
> > arch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: interrupt-names:0: 'int0' was expected
> > From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> > arch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
> > From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> > DTC_CHK arch/loongarch/boot/dts/loongson-2k1000-ref.dtb
> > arch/loongarch/boot/dts/loongson-2k1000-ref.dtb: interrupt-controller@1fe01440: interrupt-names:0: 'int0' was expected
> > From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> > arch/loongarch/boot/dts/loongson-2k1000-ref.dtb: interrupt-controller@1fe01440: Unevaluated properties are not allowed ('interrupt-names' was unexpected)
> > From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> >
> > Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
> > ---
> > .../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++----
> > 1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml b/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> > index 7393d7dfbe82..a90c609d351e 100644
> > --- a/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> > +++ b/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
> > @@ -54,11 +54,9 @@ properties:
> > interrupt-names:
> > description: List of names for the parent interrupts.
> > items:
> > - - const: int0
> > - - const: int1
> > - - const: int2
> > - - const: int3
> > + pattern: int[0-3]
> > minItems: 1
> > + maxItems: 4
> >
> > '#interrupt-cells':
> > const: 2
> > @@ -87,6 +85,7 @@ required:
> > - compatible
> > - reg
> > - interrupts
> > + - interrupt-names
>
> A new required property is an ABI break. Is that okay for this platform?
> The commit msg should answer that if so.
Hi Rob:
Thanks for your reply.
In fact, 'interrupt-names' is essential for both liointc-1.0 and
liointc-2.0, and we now pass it to get the corresponding interrupt
number.
To a certain extent, I think it's already 'required'.
Of course, I'll try to explain it more clearly in the commit message.
Thanks.
Binbin
>
>
> > - interrupt-controller
> > - '#interrupt-cells'
> > - loongson,parent-int-map
> > --
> > 2.39.3
> >
© 2016 - 2025 Red Hat, Inc.