xref: /openbmc/linux/Documentation/devicetree/bindings/interrupt-controller/loongson,liointc.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1b6280c8bSJiaxun Yang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b6280c8bSJiaxun Yang%YAML 1.2
3b6280c8bSJiaxun Yang---
4*43d78445SRob Herring$id: http://devicetree.org/schemas/interrupt-controller/loongson,liointc.yaml#
5*43d78445SRob Herring$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: |
13f4dee5d8SQing Zhang  This interrupt controller is found in the Loongson-3 family of chips and
14f4dee5d8SQing Zhang  Loongson-2K1000 chip, as the primary package interrupt controller which
15f4dee5d8SQing Zhang  can route local I/O interrupt to interrupt lines of cores.
16b6280c8bSJiaxun Yang
17b6280c8bSJiaxun YangallOf:
18b6280c8bSJiaxun Yang  - $ref: /schemas/interrupt-controller.yaml#
19b6280c8bSJiaxun Yang
20b6280c8bSJiaxun Yangproperties:
21b6280c8bSJiaxun Yang  compatible:
221c3ac086SRob Herring    enum:
231c3ac086SRob Herring      - loongson,liointc-1.0
241c3ac086SRob Herring      - loongson,liointc-1.0a
251c3ac086SRob Herring      - loongson,liointc-2.0
26b6280c8bSJiaxun Yang
27b6280c8bSJiaxun Yang  reg:
28f4dee5d8SQing Zhang    minItems: 1
29f4dee5d8SQing Zhang    maxItems: 3
30f4dee5d8SQing Zhang
31f4dee5d8SQing Zhang  reg-names:
32f4dee5d8SQing Zhang    items:
33f4dee5d8SQing Zhang      - const: main
34f4dee5d8SQing Zhang      - const: isr0
35f4dee5d8SQing Zhang      - const: isr1
36b6280c8bSJiaxun Yang
37b6280c8bSJiaxun Yang  interrupt-controller: true
38b6280c8bSJiaxun Yang
39b6280c8bSJiaxun Yang  interrupts:
40b6280c8bSJiaxun Yang    description:
41b6280c8bSJiaxun Yang      Interrupt source of the CPU interrupts.
42b6280c8bSJiaxun Yang    minItems: 1
43b6280c8bSJiaxun Yang    maxItems: 4
44b6280c8bSJiaxun Yang
45b6280c8bSJiaxun Yang  interrupt-names:
46b6280c8bSJiaxun Yang    description: List of names for the parent interrupts.
47b6280c8bSJiaxun Yang    items:
48b6280c8bSJiaxun Yang      - const: int0
49b6280c8bSJiaxun Yang      - const: int1
50b6280c8bSJiaxun Yang      - const: int2
51b6280c8bSJiaxun Yang      - const: int3
52b6280c8bSJiaxun Yang    minItems: 1
53b6280c8bSJiaxun Yang
54b6280c8bSJiaxun Yang  '#interrupt-cells':
55b6280c8bSJiaxun Yang    const: 2
56b6280c8bSJiaxun Yang
57*43d78445SRob Herring  loongson,parent_int_map:
58b6280c8bSJiaxun Yang    description: |
59b6280c8bSJiaxun Yang      This property points how the children interrupts will be mapped into CPU
60b6280c8bSJiaxun Yang      interrupt lines. Each cell refers to a parent interrupt line from 0 to 3
61f7dcfea3STiezhu Yang      and each bit in the cell refers to a child interrupt from 0 to 31.
62f7dcfea3STiezhu Yang      If a CPU interrupt line didn't connect with liointc, then keep its
63b6280c8bSJiaxun Yang      cell with zero.
643d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
653d21a460SRob Herring    minItems: 4
66b6280c8bSJiaxun Yang    maxItems: 4
67b6280c8bSJiaxun Yang
68b6280c8bSJiaxun Yangrequired:
69b6280c8bSJiaxun Yang  - compatible
70b6280c8bSJiaxun Yang  - reg
71b6280c8bSJiaxun Yang  - interrupts
72b6280c8bSJiaxun Yang  - interrupt-controller
73b6280c8bSJiaxun Yang  - '#interrupt-cells'
74*43d78445SRob Herring  - loongson,parent_int_map
75b6280c8bSJiaxun Yang
76b6280c8bSJiaxun Yang
776fdc6e23SRob HerringunevaluatedProperties: false
786fdc6e23SRob Herring
79f4dee5d8SQing Zhangif:
80f4dee5d8SQing Zhang  properties:
81f4dee5d8SQing Zhang    compatible:
82f4dee5d8SQing Zhang      contains:
83f4dee5d8SQing Zhang        enum:
84f4dee5d8SQing Zhang          - loongson,liointc-2.0
85f4dee5d8SQing Zhang
86f4dee5d8SQing Zhangthen:
87f4dee5d8SQing Zhang  properties:
88f4dee5d8SQing Zhang    reg:
89f4dee5d8SQing Zhang      minItems: 3
90f4dee5d8SQing Zhang
91f4dee5d8SQing Zhang  required:
92f4dee5d8SQing Zhang    - reg-names
93f4dee5d8SQing Zhang
94f4dee5d8SQing Zhangelse:
95f4dee5d8SQing Zhang  properties:
96f4dee5d8SQing Zhang    reg:
97f4dee5d8SQing Zhang      maxItems: 1
98f4dee5d8SQing Zhang
99b6280c8bSJiaxun Yangexamples:
100b6280c8bSJiaxun Yang  - |
101b6280c8bSJiaxun Yang    iointc: interrupt-controller@3ff01400 {
102b6280c8bSJiaxun Yang      compatible = "loongson,liointc-1.0";
103b6280c8bSJiaxun Yang      reg = <0x3ff01400 0x64>;
104b6280c8bSJiaxun Yang
105b6280c8bSJiaxun Yang      interrupt-controller;
106b6280c8bSJiaxun Yang      #interrupt-cells = <2>;
107b6280c8bSJiaxun Yang
108b6280c8bSJiaxun Yang      interrupt-parent = <&cpuintc>;
109b6280c8bSJiaxun Yang      interrupts = <2>, <3>;
110b6280c8bSJiaxun Yang      interrupt-names = "int0", "int1";
111b6280c8bSJiaxun Yang
112b6280c8bSJiaxun Yang      loongson,parent_int_map = <0xf0ffffff>, /* int0 */
113b6280c8bSJiaxun Yang                                <0x0f000000>, /* int1 */
114b6280c8bSJiaxun Yang                                <0x00000000>, /* int2 */
115b6280c8bSJiaxun Yang                                <0x00000000>; /* int3 */
116b6280c8bSJiaxun Yang
117b6280c8bSJiaxun Yang    };
118b6280c8bSJiaxun Yang
119b6280c8bSJiaxun Yang...
120