xref: /linux/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml (revision f7dcfea3c6d5715b889adf61b78ddee80008682d)
1b6280c8bSJiaxun Yang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b6280c8bSJiaxun Yang%YAML 1.2
3b6280c8bSJiaxun Yang---
4b6280c8bSJiaxun Yang$id: "http://devicetree.org/schemas/interrupt-controller/loongson,liointc.yaml#"
5b6280c8bSJiaxun Yang$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6b6280c8bSJiaxun Yang
7b6280c8bSJiaxun Yangtitle: Loongson Local I/O Interrupt Controller
8b6280c8bSJiaxun Yang
9b6280c8bSJiaxun Yangmaintainers:
10b6280c8bSJiaxun Yang  - Jiaxun Yang <jiaxun.yang@flygoat.com>
11b6280c8bSJiaxun Yang
12b6280c8bSJiaxun Yangdescription: |
13b6280c8bSJiaxun Yang  This interrupt controller is found in the Loongson-3 family of chips as the primary
14b6280c8bSJiaxun Yang  package interrupt controller which can route local I/O interrupt to interrupt lines
15b6280c8bSJiaxun Yang  of cores.
16b6280c8bSJiaxun Yang
17b6280c8bSJiaxun YangallOf:
18b6280c8bSJiaxun Yang  - $ref: /schemas/interrupt-controller.yaml#
19b6280c8bSJiaxun Yang
20b6280c8bSJiaxun Yangproperties:
21b6280c8bSJiaxun Yang  compatible:
22b6280c8bSJiaxun Yang    oneOf:
23b6280c8bSJiaxun Yang      - const: loongson,liointc-1.0
24b6280c8bSJiaxun Yang      - const: loongson,liointc-1.0a
25b6280c8bSJiaxun Yang
26b6280c8bSJiaxun Yang  reg:
27b6280c8bSJiaxun Yang    maxItems: 1
28b6280c8bSJiaxun Yang
29b6280c8bSJiaxun Yang  interrupt-controller: true
30b6280c8bSJiaxun Yang
31b6280c8bSJiaxun Yang  interrupts:
32b6280c8bSJiaxun Yang    description:
33b6280c8bSJiaxun Yang      Interrupt source of the CPU interrupts.
34b6280c8bSJiaxun Yang    minItems: 1
35b6280c8bSJiaxun Yang    maxItems: 4
36b6280c8bSJiaxun Yang
37b6280c8bSJiaxun Yang  interrupt-names:
38b6280c8bSJiaxun Yang    description: List of names for the parent interrupts.
39b6280c8bSJiaxun Yang    items:
40b6280c8bSJiaxun Yang      - const: int0
41b6280c8bSJiaxun Yang      - const: int1
42b6280c8bSJiaxun Yang      - const: int2
43b6280c8bSJiaxun Yang      - const: int3
44b6280c8bSJiaxun Yang    minItems: 1
45b6280c8bSJiaxun Yang    maxItems: 4
46b6280c8bSJiaxun Yang
47b6280c8bSJiaxun Yang  '#interrupt-cells':
48b6280c8bSJiaxun Yang    const: 2
49b6280c8bSJiaxun Yang
50b6280c8bSJiaxun Yang  'loongson,parent_int_map':
51b6280c8bSJiaxun Yang    description: |
52b6280c8bSJiaxun Yang      This property points how the children interrupts will be mapped into CPU
53b6280c8bSJiaxun Yang      interrupt lines. Each cell refers to a parent interrupt line from 0 to 3
54*f7dcfea3STiezhu Yang      and each bit in the cell refers to a child interrupt from 0 to 31.
55*f7dcfea3STiezhu Yang      If a CPU interrupt line didn't connect with liointc, then keep its
56b6280c8bSJiaxun Yang      cell with zero.
573d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
583d21a460SRob Herring    minItems: 4
59b6280c8bSJiaxun Yang    maxItems: 4
60b6280c8bSJiaxun Yang
61b6280c8bSJiaxun Yangrequired:
62b6280c8bSJiaxun Yang  - compatible
63b6280c8bSJiaxun Yang  - reg
64b6280c8bSJiaxun Yang  - interrupts
65b6280c8bSJiaxun Yang  - interrupt-controller
66b6280c8bSJiaxun Yang  - '#interrupt-cells'
67b6280c8bSJiaxun Yang  - 'loongson,parent_int_map'
68b6280c8bSJiaxun Yang
69b6280c8bSJiaxun Yang
70b6280c8bSJiaxun Yangexamples:
71b6280c8bSJiaxun Yang  - |
72b6280c8bSJiaxun Yang    iointc: interrupt-controller@3ff01400 {
73b6280c8bSJiaxun Yang      compatible = "loongson,liointc-1.0";
74b6280c8bSJiaxun Yang      reg = <0x3ff01400 0x64>;
75b6280c8bSJiaxun Yang
76b6280c8bSJiaxun Yang      interrupt-controller;
77b6280c8bSJiaxun Yang      #interrupt-cells = <2>;
78b6280c8bSJiaxun Yang
79b6280c8bSJiaxun Yang      interrupt-parent = <&cpuintc>;
80b6280c8bSJiaxun Yang      interrupts = <2>, <3>;
81b6280c8bSJiaxun Yang      interrupt-names = "int0", "int1";
82b6280c8bSJiaxun Yang
83b6280c8bSJiaxun Yang      loongson,parent_int_map = <0xf0ffffff>, /* int0 */
84b6280c8bSJiaxun Yang                                <0x0f000000>, /* int1 */
85b6280c8bSJiaxun Yang                                <0x00000000>, /* int2 */
86b6280c8bSJiaxun Yang                                <0x00000000>; /* int3 */
87b6280c8bSJiaxun Yang
88b6280c8bSJiaxun Yang    };
89b6280c8bSJiaxun Yang
90b6280c8bSJiaxun Yang...
91