2020-03-25 11:54:56 +08:00
|
|
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
|
|
%YAML 1.2
|
|
|
|
---
|
2023-03-20 18:39:27 -05:00
|
|
|
$id: http://devicetree.org/schemas/interrupt-controller/loongson,liointc.yaml#
|
|
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
title: Loongson Local I/O Interrupt Controller
|
|
|
|
|
|
|
|
maintainers:
|
|
|
|
- Jiaxun Yang <jiaxun.yang@flygoat.com>
|
|
|
|
|
|
|
|
description: |
|
2021-03-15 15:50:03 +08:00
|
|
|
This interrupt controller is found in the Loongson-3 family of chips and
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
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_check warning:
DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
arch/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.yaml
arch/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.yaml
arch/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.yaml
arch/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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
Loongson-2K series chips, as the primary package interrupt controller which
|
2021-03-15 15:50:03 +08:00
|
|
|
can route local I/O interrupt to interrupt lines of cores.
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
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_check warning:
DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
arch/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.yaml
arch/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.yaml
arch/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.yaml
arch/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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
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.
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
allOf:
|
|
|
|
- $ref: /schemas/interrupt-controller.yaml#
|
|
|
|
|
|
|
|
properties:
|
|
|
|
compatible:
|
2021-08-24 14:51:54 -05:00
|
|
|
enum:
|
|
|
|
- loongson,liointc-1.0
|
|
|
|
- loongson,liointc-1.0a
|
|
|
|
- loongson,liointc-2.0
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
reg:
|
2021-03-15 15:50:03 +08:00
|
|
|
minItems: 1
|
|
|
|
maxItems: 3
|
|
|
|
|
|
|
|
reg-names:
|
|
|
|
items:
|
|
|
|
- const: main
|
|
|
|
- const: isr0
|
|
|
|
- const: isr1
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
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_check warning:
DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
arch/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.yaml
arch/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.yaml
arch/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.yaml
arch/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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
minItems: 2
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
interrupt-controller: true
|
|
|
|
|
|
|
|
interrupts:
|
|
|
|
description:
|
|
|
|
Interrupt source of the CPU interrupts.
|
|
|
|
minItems: 1
|
|
|
|
maxItems: 4
|
|
|
|
|
|
|
|
interrupt-names:
|
|
|
|
description: List of names for the parent interrupts.
|
|
|
|
items:
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for interrupt-names
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_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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
pattern: int[0-3]
|
2020-03-25 11:54:56 +08:00
|
|
|
minItems: 1
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for interrupt-names
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_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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
maxItems: 4
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
'#interrupt-cells':
|
|
|
|
const: 2
|
|
|
|
|
2023-03-20 18:39:27 -05:00
|
|
|
loongson,parent_int_map:
|
2020-03-25 11:54:56 +08:00
|
|
|
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
|
2020-07-16 11:16:30 +08:00
|
|
|
and each bit in the cell refers to a child interrupt from 0 to 31.
|
|
|
|
If a CPU interrupt line didn't connect with liointc, then keep its
|
2020-03-25 11:54:56 +08:00
|
|
|
cell with zero.
|
2020-04-15 19:55:49 -05:00
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
|
|
minItems: 4
|
|
|
|
maxItems: 4
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
required:
|
|
|
|
- compatible
|
|
|
|
- reg
|
|
|
|
- interrupts
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for interrupt-names
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_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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
- interrupt-names
|
2020-03-25 11:54:56 +08:00
|
|
|
- interrupt-controller
|
|
|
|
- '#interrupt-cells'
|
2023-03-20 18:39:27 -05:00
|
|
|
- loongson,parent_int_map
|
2020-03-25 11:54:56 +08:00
|
|
|
|
|
|
|
|
2020-10-05 13:38:27 -05:00
|
|
|
unevaluatedProperties: false
|
|
|
|
|
2021-03-15 15:50:03 +08:00
|
|
|
if:
|
|
|
|
properties:
|
|
|
|
compatible:
|
|
|
|
contains:
|
|
|
|
enum:
|
|
|
|
- loongson,liointc-2.0
|
|
|
|
|
|
|
|
then:
|
|
|
|
properties:
|
|
|
|
reg:
|
dt-bindings: interrupt-controller: loongson,liointc: Fix dtbs_check warning for reg-names
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_check warning:
DTC_CHK arch/loongarch/boot/dts/loongson-2k0500-ref.dtb
arch/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.yaml
arch/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.yaml
arch/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.yaml
arch/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
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-01-17 12:43:00 +08:00
|
|
|
minItems: 2
|
|
|
|
maxItems: 3
|
2021-03-15 15:50:03 +08:00
|
|
|
|
|
|
|
required:
|
|
|
|
- reg-names
|
|
|
|
|
|
|
|
else:
|
|
|
|
properties:
|
|
|
|
reg:
|
|
|
|
maxItems: 1
|
|
|
|
|
2020-03-25 11:54:56 +08:00
|
|
|
examples:
|
|
|
|
- |
|
|
|
|
iointc: interrupt-controller@3ff01400 {
|
|
|
|
compatible = "loongson,liointc-1.0";
|
|
|
|
reg = <0x3ff01400 0x64>;
|
|
|
|
|
|
|
|
interrupt-controller;
|
|
|
|
#interrupt-cells = <2>;
|
|
|
|
|
|
|
|
interrupt-parent = <&cpuintc>;
|
|
|
|
interrupts = <2>, <3>;
|
|
|
|
interrupt-names = "int0", "int1";
|
|
|
|
|
|
|
|
loongson,parent_int_map = <0xf0ffffff>, /* int0 */
|
|
|
|
<0x0f000000>, /* int1 */
|
|
|
|
<0x00000000>, /* int2 */
|
|
|
|
<0x00000000>; /* int3 */
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
...
|