Merge tag 'for-5.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / interrupt-controller / loongson,liointc.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: "http://devicetree.org/schemas/interrupt-controller/loongson,liointc.yaml#"
5 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7 title: Loongson Local I/O Interrupt Controller
8
9 maintainers:
10   - Jiaxun Yang <jiaxun.yang@flygoat.com>
11
12 description: |
13   This interrupt controller is found in the Loongson-3 family of chips and
14   Loongson-2K1000 chip, as the primary package interrupt controller which
15   can route local I/O interrupt to interrupt lines of cores.
16
17 allOf:
18   - $ref: /schemas/interrupt-controller.yaml#
19
20 properties:
21   compatible:
22     oneOf:
23       - const: loongson,liointc-1.0
24       - const: loongson,liointc-1.0a
25       - const: loongson,liointc-2.0
26
27   reg:
28     minItems: 1
29     maxItems: 3
30
31   reg-names:
32     items:
33       - const: main
34       - const: isr0
35       - const: isr1
36
37   interrupt-controller: true
38
39   interrupts:
40     description:
41       Interrupt source of the CPU interrupts.
42     minItems: 1
43     maxItems: 4
44
45   interrupt-names:
46     description: List of names for the parent interrupts.
47     items:
48       - const: int0
49       - const: int1
50       - const: int2
51       - const: int3
52     minItems: 1
53     maxItems: 4
54
55   '#interrupt-cells':
56     const: 2
57
58   'loongson,parent_int_map':
59     description: |
60       This property points how the children interrupts will be mapped into CPU
61       interrupt lines. Each cell refers to a parent interrupt line from 0 to 3
62       and each bit in the cell refers to a child interrupt from 0 to 31.
63       If a CPU interrupt line didn't connect with liointc, then keep its
64       cell with zero.
65     $ref: /schemas/types.yaml#/definitions/uint32-array
66     minItems: 4
67     maxItems: 4
68
69 required:
70   - compatible
71   - reg
72   - interrupts
73   - interrupt-controller
74   - '#interrupt-cells'
75   - 'loongson,parent_int_map'
76
77
78 unevaluatedProperties: false
79
80 if:
81   properties:
82     compatible:
83       contains:
84         enum:
85           - loongson,liointc-2.0
86
87 then:
88   properties:
89     reg:
90       minItems: 3
91
92   required:
93     - reg-names
94
95 else:
96   properties:
97     reg:
98       maxItems: 1
99
100 examples:
101   - |
102     iointc: interrupt-controller@3ff01400 {
103       compatible = "loongson,liointc-1.0";
104       reg = <0x3ff01400 0x64>;
105
106       interrupt-controller;
107       #interrupt-cells = <2>;
108
109       interrupt-parent = <&cpuintc>;
110       interrupts = <2>, <3>;
111       interrupt-names = "int0", "int1";
112
113       loongson,parent_int_map = <0xf0ffffff>, /* int0 */
114                                 <0x0f000000>, /* int1 */
115                                 <0x00000000>, /* int2 */
116                                 <0x00000000>; /* int3 */
117
118     };
119
120 ...