dt-bindings: interrupt-controller: Fix some loongson,liointc warnings
Subsystems (5)
v3 cover dt-bindings: interrupt-controller: Fix some loongson,liointc warnings
Hi all:
Some liointc-related DTBS_CHECK warnings were found when trying to introduce the Loongson-2K DTS{I} for LoongArch.
This patch series attempts to fix those warnings, as well as fixing non-standard property naming.
Of course, these fixes also apply to MIPS Loongson-2K1000/Loongson-3A dts{i}.
Thanks.
-----
V3:
patch(1/5):
- new patch, 'loongson,parent_int_map' renamed to 'loongson,parent-int-map';
patch(2/5)(3/5):
- Separate the change points into separate patches;
patch(4/5):
- new patch, make sure both parent map forms can be parsed;
patch(5/5):
- new patch, fix 'loongson,parent_int_map' references in mips loongson dts{i}.
Link to V2:
https://lore.kernel.org/all/[email protected]/
V2:
1. Update commit message;
2. "interruprt-names" should be "required", the driver gets the parent interrupts through it;
3. Add more descriptions to explain the rationale for multiple nodes;
4. Rewrite if-else statements.
Link to V1:
https://lore.kernel.org/all/[email protected]/
Binbin Zhou (5):
dt-bindings: interrupt-controller: loongson,liointc: Standardize the
naming of 'loongson,parent-int-map'
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check
warning for reg-names
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check
for interrupt-names
irqchip/loongson-liointc: Fix 'loongson,parent_int_map' parse
MIPS: Loongson64: DTS: Fix 'loongson,parent_int_map' references
.../loongson,liointc.yaml | 44 +++++++++++++------ .../boot/dts/loongson/loongson64-2k1000.dtsi | 4 +- .../dts/loongson/loongson64c-package.dtsi | 2 +- .../dts/loongson/loongson64g-package.dtsi | 2 +- .../dts/loongson/loongson64v_4core_virtio.dts | 2 +- drivers/irqchip/irq-loongson-liointc.c | 7 ++- 6 files changed, 41 insertions(+), 20 deletions(-)
Signature · 1 line
2.39.3
PATCH v3 1/5 dt-bindings: interrupt-controller: loongson,liointc: Standardize the naming of 'loongson,parent-int-map'
Since the 'loongson,parent_int_map' attribute naming is non-standard, we should use 'loongson,parent-int-map' instead.
Also, 'loongson,parent_int_map' should be marked as deprecated.
--- .../interrupt-controller/loongson,liointc.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +11 -4
@@ -55,6 +55,7 @@ properties: const: 2 loongson,parent_int_map: + deprecated: true description: | This property points how the children interrupts will be mapped into CPU interrupt lines. Each cell refers to a parent interrupt line from 0 to 3
@@ -65,14 +66,21 @@ properties: minItems: 4 maxItems: 4 + loongson,parent-int-map: + description: | + Exactly the same as 'loongson,parent_int_map', we just replaced the + unstandardized use of underscores. + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 4 + maxItems: 4 + required: - compatible - reg - interrupts - interrupt-controller - '#interrupt-cells' - - loongson,parent_int_map - + - loongson,parent-int-map unevaluatedProperties: false
@@ -109,11 +117,10 @@ examples: interrupts = <2>, <3>; interrupt-names = "int0", "int1"; - loongson,parent_int_map = <0xf0ffffff>, /* int0 */ + loongson,parent-int-map = <0xf0ffffff>, /* int0 */ <0x0f000000>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */ - }; ...
Signature · 1 line
2.39.3
Rob Herring
maintainerRe: [PATCH v3 1/5] dt-bindings: interrupt-controller: loongson,liointc: Standardize the naming of 'loongson,parent-int-map'
Quoted 3 lines · Binbin Zhou
Since the 'loongson,parent_int_map' attribute naming is non-standard, we should use 'loongson,parent-int-map' instead.
Also, 'loongson,parent_int_map' should be marked as deprecated.
While yes, '-' is preferred over '_', I don't think it is worth carrying support (here and in the kernel) for both.
Quoted 5 lines
Signed-off-by Binbin Zhou <[email protected]>--- .../interrupt-controller/loongson,liointc.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
Re: [PATCH v3 1/5] dt-bindings: interrupt-controller: loongson,liointc: Standardize the naming of 'loongson,parent-int-map'
Quoted 8 lines · Rob Herring
Quoted 3 lines · Binbin Zhou
Since the 'loongson,parent_int_map' attribute naming is non-standard, we should use 'loongson,parent-int-map' instead.
Also, 'loongson,parent_int_map' should be marked as deprecated.While yes, '-' is preferred over '_', I don't think it is worth carrying support (here and in the kernel) for both.
Hi Rob:
We try to keep it compatible as the MIPS Loongson has been using this property for a long time.
Krzysztof also thinks it is required.
Thanks.
Binbin
Quoted 6 lines
Quoted 6 lines
Signed-off-by Binbin Zhou <[email protected]>--- .../interrupt-controller/loongson,liointc.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
PATCH v3 2/5 dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
In reply to Binbin ZhouAs we know, the Loongson-2K0500 is a single-core CPU, and the core1-related register (isr1) does not exist, and we need a separate declaration.
This fixes dtbs_check warning:
DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtbarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: reg-names: ['main', 'isr0'] is too short
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: Unevaluated properties are not allowed ('reg-names' was unexpected)
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: reg: [[0, 534844416, 0, 64], [0, 534843456, 0, 8]] is too short
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: reg-names: ['main', 'isr0'] is too short
From schema: Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
--- .../loongson,liointc.yaml | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-)
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +16 -6
@@ -11,8 +11,13 @@ maintainers: description: | This interrupt controller is found in the Loongson-3 family of chips and - Loongson-2K1000 chip, as the primary package interrupt controller which + Loongson-2K series chips, as the primary package interrupt controller which can route local I/O interrupt to interrupt lines of cores. + Be aware of the following points. + 1.The Loongson-2K0500 is a single core CPU, the isr1 register could not be defined; + 2.The Loongson-2K0500/2K1000 has 64 device interrupt sources as inputs, so we + need to define two nodes in dts{i} to describe the "0-31" and "32-61" interrupt + sources respectively. allOf: - $ref: /schemas/interrupt-controller.yaml#
@@ -29,10 +34,14 @@ properties: maxItems: 3 reg-names: - items: - - const: main - - const: isr0 - - const: isr1 + oneOf: + - items: + - const: main + - const: isr0 + - items: + - const: main + - const: isr0 + - const: isr1 interrupt-controller: true
@@ -94,7 +103,8 @@ if: then: properties: reg: - minItems: 3 + minItems: 2 + maxItems: 3 required: - reg-names
Signature · 1 line
2.39.3
Re: [PATCH v3 2/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
Quoted 26 lines · 在2023年10月31日十月 上午2:36,Binbin Zhou写道:
As we know, the Loongson-2K0500 is a single-core CPU, and the core1-related register (isr1) does not exist, and we need a separate declaration.
This fixes
dtbs_checkwarning:
DTC_CHKarch/loongarch/boot/dts/loongson-2k0500-ref.dtbarch/loongarch/boot/dts/loongson-2k0500-ref.dtb:
interrupt-controller@1fe11400: reg-names: ['main', 'isr0'] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb:
interrupt-controller@1fe11400: Unevaluated properties are not allowed ('reg-names' was unexpected)
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb:
interrupt-controller@1fe11400: reg: [[0, 534844416, 0, 64], [0, 534843456, 0, 8]] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb:
interrupt-controller@1fe11440: reg-names: ['main', 'isr0'] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml
Quoted 2 lines
Signed-off-by Binbin Zhou <[email protected]>---
[...]
Signature · 1 line
- Jiaxun
Rob Herring
maintainerRe: [PATCH v3 2/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
In reply to Binbin ZhouQuoted 46 lines · Binbin Zhou
As we know, the Loongson-2K0500 is a single-core CPU, and the core1-related register (isr1) does not exist, and we need a separate declaration.
This fixes
dtbs_checkwarning:
DTC_CHKarch/loongarch/boot/dts/loongson-2k0500-ref.dtbarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: reg-names: ['main', 'isr0'] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: Unevaluated properties are not allowed ('reg-names' was unexpected)
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: reg: [[0, 534844416, 0, 64], [0, 534843456, 0, 8]] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: reg-names: ['main', 'isr0'] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlSigned-off-by Binbin Zhou <[email protected]>--- .../loongson,liointc.yaml | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-)Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +6
-3@@ -11,8 +11,13 @@ maintainers: description: | This interrupt controller is found in the Loongson-3 family of chips and - Loongson-2K1000 chip, as the primary package interrupt controller which + Loongson-2K series chips, as the primary package interrupt controller which can route local I/O interrupt to interrupt lines of cores. + Be aware of the following points. + 1.The Loongson-2K0500 is a single core CPU, the isr1 register could not be defined; + 2.The Loongson-2K0500/2K1000 has 64 device interrupt sources as inputs, so we + need to define two nodes in dts{i} to describe the "0-31" and "32-61" interrupt + sources respectively. allOf: - $ref: /schemas/interrupt-controller.yaml#@@ -29,10 +34,14 @@ properties: maxItems: 3 reg-names: - items: - - const: main
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml properties: · line 44
Quoted 10 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +8
-2- - const: isr0 - - const: isr1 + oneOf: + - items: + - const: main + - const: isr0 + - items: + - const: main + - const: isr0 + - const: isr1
Just adding 'minItems: 2' accomplishes the same thing without duplicating the list.
Quoted 16 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +2
-1interrupt-controller: true@@ -94,7 +103,8 @@ if: then: properties: reg: - minItems: 3 + minItems: 2 + maxItems: 3 required: - reg-namesSignature · 1 line
2.39.3
Re: [PATCH v3 2/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
Quoted 45 lines · Rob Herring
Quoted 43 lines · Binbin Zhou
As we know, the Loongson-2K0500 is a single-core CPU, and the core1-related register (isr1) does not exist, and we need a separate declaration.
This fixes
dtbs_checkwarning:
DTC_CHKarch/loongarch/boot/dts/loongson-2k0500-ref.dtbarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: reg-names: ['main', 'isr0'] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: Unevaluated properties are not allowed ('reg-names' was unexpected)
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11400: reg: [[0, 534844416, 0, 64], [0, 534843456, 0, 8]] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlarch/loongarch/boot/dts/loongson-2k0500-ref.dtb: interrupt-controller@1fe11440: reg-names: ['main', 'isr0'] is too short
From schema:Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yamlSigned-off-by Binbin Zhou <[email protected]>--- .../loongson,liointc.yaml | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-)Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +6
-1@@ -11,8 +11,13 @@ maintainers: description: | This interrupt controller is found in the Loongson-3 family of chips and - Loongson-2K1000 chip, as the primary package interrupt controller which + Loongson-2K series chips, as the primary package interrupt controller which can route local I/O interrupt to interrupt lines of cores. + Be aware of the following points. + 1.The Loongson-2K0500 is a single core CPU, the isr1 register could not be defined; + 2.The Loongson-2K0500/2K1000 has 64 device interrupt sources as inputs, so we + need to define two nodes in dts{i} to describe the "0-31" and "32-61" interrupt + sources respectively. allOf: - $ref: /schemas/interrupt-controller.yaml#@@ -29,10 +34,14 @@ properties: maxItems: 3
Quoted 16 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml properties: · line 44
Quoted 13 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +8
-4reg-names: - items: - - const: main - - const: isr0 - - const: isr1 + oneOf: + - items: + - const: main + - const: isr0 + - items: + - const: main + - const: isr0 + - const: isr1Just adding 'minItems: 2' accomplishes the same thing without duplicating the list.
OK, I will do it.
Thanks.
Binbin
Quoted 17 lines
Quoted 17 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +2
-2interrupt-controller: true@@ -94,7 +103,8 @@ if: then: properties: reg: - minItems: 3 + minItems: 2 + maxItems: 3 required: - reg-names --2.39.3
PATCH v3 3/5 dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check for interrupt-names
In reply to Binbin ZhouThe 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.dtbarch/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.yamlarch/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.yamlDTC_CHK arch/loongarch/boot/dts/loongson-2k1000-ref.dtbarch/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.yamlarch/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
--- .../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +3 -4
@@ -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
Signature · 1 line
2.39.3
Rob Herring
maintainerRe: [PATCH v3 3/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check for interrupt-names
Quoted 49 lines · Binbin Zhou
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_checkwarning:
DTC_CHKarch/loongarch/boot/dts/loongson-2k0500-ref.dtbarch/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.yamlarch/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.yamlDTC_CHKarch/loongarch/boot/dts/loongson-2k1000-ref.dtbarch/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.yamlarch/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.yamlSigned-off-by Binbin Zhou <[email protected]>--- .../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +2
-4@@ -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
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml required: · line 88
Quoted 4 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +1
-0@@ -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.
Quoted 6 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +0
-0- interrupt-controller - '#interrupt-cells' - loongson,parent-int-mapSignature · 1 line
2.39.3
Re: [PATCH v3 3/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check for interrupt-names
Quoted 48 lines · Rob Herring
Quoted 46 lines · Binbin Zhou
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_checkwarning:
DTC_CHKarch/loongarch/boot/dts/loongson-2k0500-ref.dtbarch/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.yamlarch/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.yamlDTC_CHKarch/loongarch/boot/dts/loongson-2k1000-ref.dtbarch/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.yamlarch/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.yamlSigned-off-by Binbin Zhou <[email protected]>--- .../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +2
-4@@ -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
Quoted 10 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml required: · line 88
Quoted 7 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +1
-0'#interrupt-cells': const: 2@@ -87,6 +85,7 @@ required: - compatible - reg - interrupts + - interrupt-namesA 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
Quoted 8 lines
Quoted 8 lines
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +0
-1- interrupt-controller - '#interrupt-cells' - loongson,parent-int-map --2.39.3
PATCH v3 4/5 irqchip/loongson-liointc: Fix 'loongson,parent_int_map' parse
In reply to Binbin ZhouWhile 'loongson,parent_int_map' is deprecated, we need to make sure that both forms can be parsed.
--- drivers/irqchip/irq-loongson-liointc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/irqchip/irq-loongson-liointc.c +6 -1
@@ -330,6 +330,7 @@ static int __init liointc_of_init(struct device_node *node,bool have_parent = FALSE;int sz, i, index, revision, err =0 ;struct resource res; +const char *prop_name ="loongson,parent-int-map" ;if (!of_device_is_compatible (node,"loongson,liointc-2.0" )) { index =0 ;
@@ -350,8 +351,12 @@ static int __init liointc_of_init(struct device_node *node,if (!have_parent)return -ENODEV ; +if (!of_find_property (node, prop_name, &i)) +/* Fallback to 'loongson,parent_int_map', although it is deprecated. */ + prop_name ="loongson,parent_int_map" ; + sz =of_property_read_variable_u32_array (node, -"loongson,parent_int_map" , + prop_name, &parent_int_map[0 ],LIOINTC_NUM_PARENT ,LIOINTC_NUM_PARENT );
Signature · 1 line
2.39.3
PATCH v3 5/5 MIPS: Loongson64: DTS: Fix 'loongson,parent_int_map' references
In reply to Binbin ZhouSince 'loongson,parent_int_map' has been deprecated, replace all relevant references in the MIPS loongson dts{i} with 'loongson,parent-int-map'.
--- arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi | 4 ++-- arch/mips/boot/dts/loongson/loongson64c-package.dtsi | 2 +- arch/mips/boot/dts/loongson/loongson64g-package.dtsi | 2 +- arch/mips/boot/dts/loongson/loongson64v_4core_virtio.dts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-)
arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi +2 -2
@@ -71,7 +71,7 @@ liointc0: interrupt-controller@1fe11400 { interrupts = <2>; interrupt-names = "int0"; - loongson,parent_int_map = <0xffffffff>, /* int0 */ + loongson,parent-int-map = <0xffffffff>, /* int0 */ <0x00000000>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */
@@ -91,7 +91,7 @@ liointc1: interrupt-controller@1fe11440 { interrupts = <3>; interrupt-names = "int1"; - loongson,parent_int_map = <0x00000000>, /* int0 */ + loongson,parent-int-map = <0x00000000>, /* int0 */ <0xffffffff>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */
arch/mips/boot/dts/loongson/loongson64c-package.dtsi +1 -1
@@ -35,7 +35,7 @@ liointc: interrupt-controller@3ff01400 { interrupts = <2>, <3>; interrupt-names = "int0", "int1"; - loongson,parent_int_map = <0xf0ffffff>, /* int0 */ + loongson,parent-int-map = <0xf0ffffff>, /* int0 */ <0x0f000000>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */
arch/mips/boot/dts/loongson/loongson64g-package.dtsi +1 -1
@@ -32,7 +32,7 @@ liointc: interrupt-controller@3ff01400 { interrupts = <2>, <3>; interrupt-names = "int0", "int1"; - loongson,parent_int_map = <0x00ffffff>, /* int0 */ + loongson,parent-int-map = <0x00ffffff>, /* int0 */ <0xff000000>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */
arch/mips/boot/dts/loongson/loongson64v_4core_virtio.dts +1 -1
@@ -34,7 +34,7 @@ liointc: interrupt-controller@3ff01400 { interrupts = <2>, <3>; interrupt-names = "int0", "int1"; - loongson,parent_int_map = <0x00000001>, /* int0 */ + loongson,parent-int-map = <0x00000001>, /* int0 */ <0xfffffffe>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */
Signature · 1 line
2.39.3
Quoted 11 lines · 在2023年10月31日十月 上午2:36,Binbin Zhou写道:
Hi all:
Some liointc-related
DTBS_CHECKwarnings were found when trying to introduce the Loongson-2K DTS{I} for LoongArch.
This patch series attempts to fix those warnings, as well as fixing non-standard property naming.Of course, these fixes also apply to MIPS Loongson-2K1000/Loongson-3A dts{i}.
Thanks.
For the whole series:
Apologize for the bad design at the first place :-( You tried really hard to get it fixed.
Thanks
- Jiaxun
Quoted 46 lines
-----
V3:
patch(1/5):
- new patch, 'loongson,parent_int_map' renamed to 'loongson,parent-int-map';
patch(2/5)(3/5):
- Separate the change points into separate patches;
patch(4/5):
- new patch, make sure both parent map forms can be parsed;
patch(5/5):
- new patch, fix 'loongson,parent_int_map' references in mips loongson dts{i}.Link to V2:
https://lore.kernel.org/all/[email protected]/V2:
1. Update commit message;
2. "interruprt-names" should be "required", the driver gets the parent interrupts through it;
3. Add more descriptions to explain the rationale for multiple nodes;
4. Rewrite if-else statements.Link to V1:
https://lore.kernel.org/all/[email protected]/Binbin Zhou (5):
dt-bindings: interrupt-controller: loongson,liointc: Standardize the
naming of 'loongson,parent-int-map'
dt-bindings: interrupt-controller: loongson,liointc: Fixdtbs_check
warning for reg-names
dt-bindings: interrupt-controller: loongson,liointc: Fixdtbs_check
for interrupt-names
irqchip/loongson-liointc: Fix 'loongson,parent_int_map' parse
MIPS: Loongson64: DTS: Fix 'loongson,parent_int_map' references.../loongson,liointc.yaml | 44 +++++++++++++------ .../boot/dts/loongson/loongson64-2k1000.dtsi | 4 +- .../dts/loongson/loongson64c-package.dtsi | 2 +- .../dts/loongson/loongson64g-package.dtsi | 2 +- .../dts/loongson/loongson64v_4core_virtio.dts | 2 +- drivers/irqchip/irq-loongson-liointc.c | 7 ++- 6 files changed, 41 insertions(+), 20 deletions(-)Signature · 1 line
2.39.3
Signature · 1 line
- Jiaxun