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