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

title: Broadcom Generic Level 2 Interrupt Controller

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

allOf:
  - $ref: /schemas/interrupt-controller.yaml#

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - brcm,hif-spi-l2-intc
              - brcm,upg-aux-aon-l2-intc
          - const: brcm,l2-intc
      - items:
          - enum:
              - brcm,bcm2711-l2-intc
          - const: brcm,l2-intc
      - items:
          - const: brcm,bcm7271-l2-intc
      - items:
          - const: brcm,l2-intc

  reg:
    maxItems: 1
    description: >
      Specifies the base physical address and size of the registers

  interrupt-controller: true

  "#interrupt-cells":
    const: 1

  interrupts:
    maxItems: 1

  interrupt-names:
    maxItems: 1

  brcm,irq-can-wake:
    type: boolean
    description: >
      If present, this means the L2 controller can be used as a wakeup source
      for system suspend/resume.

additionalProperties: false

required:
  - compatible
  - reg
  - interrupt-controller
  - "#interrupt-cells"
  - interrupts

examples:
  - |
    hif_intr2_intc: interrupt-controller@f0441000 {
      compatible = "brcm,l2-intc";
      reg = <0xf0441000 0x30>;
      interrupt-controller;
      #interrupt-cells = <1>;
      interrupt-parent = <&intc>;
      interrupts = <0x0 0x20 0x0>;
    };