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

title: Freescale General-purpose Timers Module

maintainers:
  - J. Neuschäfer <j.ne@posteo.net>

properties:
  compatible:
    oneOf:
      # for SoC GTMs
      - items:
          - enum:
              - fsl,mpc8308-gtm
              - fsl,mpc8313-gtm
              - fsl,mpc8315-gtm
              - fsl,mpc8360-gtm
          - const: fsl,gtm

      # for QE GTMs
      - items:
          - enum:
              - fsl,mpc8360-qe-gtm
              - fsl,mpc8569-qe-gtm
          - const: fsl,qe-gtm
          - const: fsl,gtm

      # for CPM2 GTMs (no known examples)
      - items:
          # - enum:
          #     - fsl,<chip>-cpm2-gtm
          - const: fsl,cpm2-gtm
          - const: fsl,gtm

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: Interrupt for timer 1 (e.g. GTM1 or GTM5)
      - description: Interrupt for timer 2 (e.g. GTM2 or GTM6)
      - description: Interrupt for timer 3 (e.g. GTM3 or GTM7)
      - description: Interrupt for timer 4 (e.g. GTM4 or GTM8)

  clock-frequency: true

required:
  - compatible
  - reg
  - interrupts
  - clock-frequency

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    timer@500 {
        compatible = "fsl,mpc8360-gtm", "fsl,gtm";
        reg = <0x500 0x40>;
        interrupts = <90 IRQ_TYPE_LEVEL_LOW>,
                     <78 IRQ_TYPE_LEVEL_LOW>,
                     <84 IRQ_TYPE_LEVEL_LOW>,
                     <72 IRQ_TYPE_LEVEL_LOW>;
        /* filled by u-boot */
        clock-frequency = <0>;
    };

  - |
    timer@440 {
        compatible = "fsl,mpc8360-qe-gtm", "fsl,qe-gtm", "fsl,gtm";
        reg = <0x440 0x40>;
        interrupts = <12>, <13>, <14>, <15>;
        /* filled by u-boot */
        clock-frequency = <0>;
    };

...
