# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/renesas,mtu2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas Multi-Function Timer Pulse Unit 2 (MTU2)

maintainers:
  - Geert Uytterhoeven <geert+renesas@glider.be>
  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

description:
  The MTU2 is a multi-purpose, multi-channel timer/counter with configurable clock inputs
  and programmable compare match.

  Channels share hardware resources but their counter and compare match value are
  independent. The MTU2 hardware supports five channels indexed from 0 to 4.

properties:
  compatible:
    items:
      - enum:
          - renesas,mtu2-r7s72100 # RZ/A1H
      - const: renesas,mtu2

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 5
    description: One entry for each enabled channel.

  interrupt-names:
    minItems: 1
    items:
      - const: tgi0a
      - const: tgi1a
      - const: tgi2a
      - const: tgi3a
      - const: tgi4a

  clocks:
    maxItems: 1

  clock-names:
    const: fck

  power-domains:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - clocks
  - clock-names
  - power-domains

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r7s72100-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    mtu2: timer@fcff0000 {
            compatible = "renesas,mtu2-r7s72100", "renesas,mtu2";
            reg = <0xfcff0000 0x400>;
            interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "tgi0a";
            clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
            clock-names = "fck";
            power-domains = <&cpg_clocks>;
    };