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/img,pdc-intc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ImgTec Powerdown Controller (PDC) Interrupt Controller
8
9maintainers:
10  - James Hogan <jhogan@kernel.org>
11
12description:
13  ImgTec Powerdown Controller (PDC) Interrupt Controller has a number of input
14  interrupt lines which can wake the system, and are passed on through output
15  interrupt lines.
16
17properties:
18  compatible:
19    const: img,pdc-intc
20
21  reg:
22    maxItems: 1
23
24  interrupt-controller: true
25
26  '#interrupt-cells':
27    description: >
28      <1st-cell>: The interrupt-number that identifies the interrupt source.
29        0-7:  Peripheral interrupts
30        8-15: SysWake interrupts
31
32      <2nd-cell>: The level-sense information, encoded using the Linux interrupt
33        flags as follows (only 4 valid for peripheral interrupts):
34        0 = none (decided by software)
35        1 = low-to-high edge triggered
36        2 = high-to-low edge triggered
37        3 = both edge triggered
38        4 = active-high level-sensitive (required for perip irqs)
39        8 = active-low level-sensitive
40    const: 2
41
42  num-perips:
43    description: Number of waking peripherals
44    $ref: /schemas/types.yaml#/definitions/uint32
45    maximum: 8
46
47  num-syswakes:
48    description: Number of SysWake inputs
49    $ref: /schemas/types.yaml#/definitions/uint32
50    maximum: 8
51
52  interrupts:
53    description:
54      First entry is syswake IRQ. Subsequent entries are 1 per peripheral.
55    minItems: 2
56    maxItems: 9
57
58required:
59  - compatible
60  - reg
61  - interrupt-controller
62  - '#interrupt-cells'
63  - num-perips
64  - num-syswakes
65  - interrupts
66
67additionalProperties: false
68
69examples:
70  - |
71    interrupt-controller@2006000 {
72        compatible = "img,pdc-intc";
73        reg = <0x02006000 0x1000>;
74        interrupts = <18 4>, <30 4>, <29 4>, <31 4>;
75        interrupt-controller;
76        #interrupt-cells = <2>;
77        num-perips = <3>;
78        num-syswakes = <4>;
79    };
80