# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/img,pdc-intc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ImgTec Powerdown Controller (PDC) Interrupt Controller

maintainers:
  - James Hogan <jhogan@kernel.org>

description:
  ImgTec Powerdown Controller (PDC) Interrupt Controller has a number of input
  interrupt lines which can wake the system, and are passed on through output
  interrupt lines.

properties:
  compatible:
    const: img,pdc-intc

  reg:
    maxItems: 1

  interrupt-controller: true

  '#interrupt-cells':
    description: >
      <1st-cell>: The interrupt-number that identifies the interrupt source.
        0-7:  Peripheral interrupts
        8-15: SysWake interrupts

      <2nd-cell>: The level-sense information, encoded using the Linux interrupt
        flags as follows (only 4 valid for peripheral interrupts):
        0 = none (decided by software)
        1 = low-to-high edge triggered
        2 = high-to-low edge triggered
        3 = both edge triggered
        4 = active-high level-sensitive (required for perip irqs)
        8 = active-low level-sensitive
    const: 2

  num-perips:
    description: Number of waking peripherals
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 8

  num-syswakes:
    description: Number of SysWake inputs
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 8

  interrupts:
    description:
      First entry is syswake IRQ. Subsequent entries are 1 per peripheral.
    minItems: 2
    maxItems: 9

required:
  - compatible
  - reg
  - interrupt-controller
  - '#interrupt-cells'
  - num-perips
  - num-syswakes
  - interrupts

additionalProperties: false

examples:
  - |
    interrupt-controller@2006000 {
        compatible = "img,pdc-intc";
        reg = <0x02006000 0x1000>;
        interrupts = <18 4>, <30 4>, <29 4>, <31 4>;
        interrupt-controller;
        #interrupt-cells = <2>;
        num-perips = <3>;
        num-syswakes = <4>;
    };
