xref: /linux/Documentation/devicetree/bindings/interrupt-controller/realtek,rtl-intc.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
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/realtek,rtl-intc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Realtek RTL SoC interrupt controller
8
9description:
10  Interrupt controller and router for Realtek MIPS SoCs, allowing each SoC
11  interrupt to be routed to one parent CPU (hardware) interrupt, or left
12  disconnected.
13  All connected input lines from SoC peripherals can be masked individually,
14  and an interrupt status register is present to indicate which interrupts are
15  pending.
16
17maintainers:
18  - Birger Koblitz <mail@birger-koblitz.de>
19  - Bert Vermeulen <bert@biot.com>
20  - John Crispin <john@phrozen.org>
21
22properties:
23  compatible:
24    oneOf:
25      - items:
26          - enum:
27              - realtek,rtl8380-intc
28              - realtek,rtl9300-intc
29          - const: realtek,rtl-intc
30      - const: realtek,rtl-intc
31        deprecated: true
32
33  "#interrupt-cells":
34    description:
35      First cell is the SoC interrupt line index. Optional second cell
36      specifies the parent interrupt index to route to.
37    enum: [1, 2]
38
39  reg:
40    minItems: 1
41    items:
42      - description: vpe0 registers
43      - description: vpe1 registers
44
45  interrupts:
46    minItems: 1
47    maxItems: 15
48    description:
49      List of parent interrupts, in the order that they are connected to this
50      interrupt router's outputs, starting at the first output.
51
52  interrupt-controller: true
53
54  interrupt-map:
55    deprecated: true
56    description: Describes mapping from SoC interrupts to CPU interrupts
57
58required:
59  - compatible
60  - reg
61  - "#interrupt-cells"
62  - interrupt-controller
63
64allOf:
65  - if:
66      properties:
67        compatible:
68          const: realtek,rtl-intc
69    then:
70      properties:
71        "#address-cells":
72          const: 0
73      required:
74        - "#address-cells"
75        - interrupt-map
76    else:
77      required:
78        - interrupts
79  - if:
80      properties:
81        compatible:
82          contains:
83            const: realtek,rtl9300-intc
84    then:
85      properties:
86        reg:
87          minItems: 2
88          maxItems: 2
89    else:
90      properties:
91        reg:
92          maxItems: 1
93
94additionalProperties: false
95
96examples:
97  - |
98    interrupt-controller@3000 {
99      compatible = "realtek,rtl8380-intc", "realtek,rtl-intc";
100      #interrupt-cells = <1>;
101      interrupt-controller;
102      reg = <0x3000 0x18>;
103
104      interrupt-parent = <&cpuintc>;
105      interrupts = <2>, <3>, <4>, <5>, <6>;
106    };
107