dt-bindings: interrupt-controller: Fix some loongson,liointc warnings
Subsystems (5)
v4 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.
Thanks.
-----
V4:
- Add Acked-by tag;
patch(2/5):
- Just add 'maxitem 2' instead of duplicating the list;
patch(3/5):
- Rewite commit message for 'interrupt-names'.
Link to V3:
https://lore.kernel.org/all/[email protected]/
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 warning interrupt-names
irqchip/loongson-liointc: Fix 'loongson,parent_int_map' parse
MIPS: Loongson64: DTS: Fix 'loongson,parent_int_map' references
.../loongson,liointc.yaml | 33 +++++++++++++------ .../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, 34 insertions(+), 16 deletions(-)
Signature · 1 line
2.39.3
PATCH v4 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' will 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 v4 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' will be marked as deprecated.
Again, as I said last time, it is not worth adding 'loongson,parent-int-map' and having to support both forms in the kernel forever. If you can define a time that we keep 'loongson,parent_int_map' that's less than "forever", then may be it would be worth changing.
To put this another way, using '-' instead of '_' is for *new* bindings, not existing users.
Rob
Re: [PATCH v4 1/5] dt-bindings: interrupt-controller: loongson,liointc: Standardize the naming of 'loongson,parent-int-map'
Quoted 6 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' will be marked as deprecated.
Quoted 8 lines
Again, as I said last time, it is not worth adding 'loongson,parent-int-map' and having to support both forms in the kernel forever. If you can define a time that we keep 'loongson,parent_int_map' that's less than "forever", then may be it would be worth changing.
To put this another way, using '-' instead of '_' is for *new* bindings, not existing users.
OK, I see, and I will fix it in the next version.
Thanks.
Binbin
Quoted 1 line
Rob
PATCH v4 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. So "reg" and "reg-names" should be set to "minItems 2"(main nad isr0).
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
--- .../interrupt-controller/loongson,liointc.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml +9 -2
@@ -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; + 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#
@@ -33,6 +38,7 @@ properties: - const: main - const: isr0 - const: isr1 + minItems: 2 interrupt-controller: true
@@ -94,7 +100,8 @@ if: then: properties: reg: - minItems: 3 + minItems: 2 + maxItems: 3 required: - reg-names
Signature · 1 line
2.39.3
Re: [PATCH v4 2/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
Quoted 16 lines · Binbin Zhou
As we know, the Loongson-2K0500 is a single-core CPU, and the core1-related register (isr1) does not exist. So "reg" and "reg-names" should be set to "minItems 2"(main nad isr0).
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 6 lines
Acked-by Jiaxun Yang <[email protected]>Signed-off-by Binbin Zhou <[email protected]>--- .../interrupt-controller/loongson,liointc.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
PATCH v4 3/5 dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning 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 have to make sure that the routing outputs ("intx") of the two nodes do not conflict, i.e. "int0" can only be used as a routing output for one of them. Therefore, "interrupt-names" should be defined as "pattern".
In addition, since "interrupt-names" and "interrupts" are one-to-one correspondence, we pass it to get the corresponding interrupt number in the driver. Setting it to "required" does not break ABI, because it is already logically represented as "required".
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
@@ -51,11 +51,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
@@ -84,6 +82,7 @@ required: - compatible - reg - interrupts + - interrupt-names - interrupt-controller - '#interrupt-cells' - loongson,parent-int-map
Signature · 1 line
2.39.3
Re: [PATCH v4 3/5] dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for interrupt-names
Quoted 27 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 have to make sure that the routing outputs ("intx") of the two nodes do not conflict, i.e. "int0" can only be used as a routing output for one of them. Therefore, "interrupt-names" should be defined as "pattern".
In addition, since "interrupt-names" and "interrupts" are one-to-one correspondence, we pass it to get the corresponding interrupt number in the driver. Setting it to "required" does not break ABI, because it is already logically represented as "required".
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.yaml
Quoted 6 lines
Acked-by Jiaxun Yang <[email protected]>Signed-off-by Binbin Zhou <[email protected]>--- .../bindings/interrupt-controller/loongson,liointc.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
PATCH v4 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 v4 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
For the whole series.
Quoted 69 lines · 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.
Thanks.
-----
V4:
- Add Acked-by tag;
patch(2/5):
- Just add 'maxitem 2' instead of duplicating the list;
patch(3/5):
- Rewite commit message for 'interrupt-names'.Link to V3:
https://lore.kernel.org/all/[email protected]/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 warning interrupt-names
irqchip/loongson-liointc: Fix 'loongson,parent_int_map' parse
MIPS: Loongson64: DTS: Fix 'loongson,parent_int_map' references.../loongson,liointc.yaml | 33 +++++++++++++------ .../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, 34 insertions(+), 16 deletions(-)--
2.39.3