Documentation / devicetree / bindings / timer / faraday,fttmr010.yaml


Based on kernel version 6.18. Page generated on 2025-12-02 09:03 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/faraday,fttmr010.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Faraday FTTMR010 timer

maintainers:
  - Joel Stanley <joel@jms.id.au>
  - Linus Walleij <linus.walleij@linaro.org>

description:
  This timer is a generic IP block from Faraday Technology, embedded in the
  Cortina Systems Gemini SoCs and other designs.

properties:
  compatible:
    oneOf:
      - items:
          - const: moxa,moxart-timer
          - const: faraday,fttmr010
      - enum:
          - aspeed,ast2400-timer
          - aspeed,ast2500-timer
          - aspeed,ast2600-timer
          - cortina,gemini-timer
          - faraday,fttmr010

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 8
    description: One interrupt per timer

  clocks:
    minItems: 1
    items:
      - description: Peripheral clock
      - description: External tick clock

  clock-names:
    minItems: 1
    items:
      - const: PCLK
      - const: EXTCLK

  resets:
    maxItems: 1

  syscon:
    description: System controller phandle for Gemini systems
    $ref: /schemas/types.yaml#/definitions/phandle

required:
  - compatible
  - reg
  - interrupts

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: cortina,gemini-timer
    then:
      required:
        - syscon
    else:
      properties:
        syscon: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
 
    timer@43000000 {
        compatible = "faraday,fttmr010";
        reg = <0x43000000 0x1000>;
        interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
                    <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
                    <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
        clocks = <&pclk>, <&extclk>;
        clock-names = "PCLK", "EXTCLK";
    };