xref: /linux/Documentation/devicetree/bindings/timer/faraday,fttmr010.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/timer/faraday,fttmr010.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Faraday FTTMR010 timer
8
9maintainers:
10  - Joel Stanley <joel@jms.id.au>
11  - Linus Walleij <linus.walleij@linaro.org>
12
13description:
14  This timer is a generic IP block from Faraday Technology, embedded in the
15  Cortina Systems Gemini SoCs and other designs.
16
17properties:
18  compatible:
19    oneOf:
20      - items:
21          - const: moxa,moxart-timer
22          - const: faraday,fttmr010
23      - enum:
24          - aspeed,ast2400-timer
25          - aspeed,ast2500-timer
26          - aspeed,ast2600-timer
27          - cortina,gemini-timer
28          - faraday,fttmr010
29
30  reg:
31    maxItems: 1
32
33  interrupts:
34    minItems: 1
35    maxItems: 8
36    description: One interrupt per timer
37
38  clocks:
39    minItems: 1
40    items:
41      - description: Peripheral clock
42      - description: External tick clock
43
44  clock-names:
45    minItems: 1
46    items:
47      - const: PCLK
48      - const: EXTCLK
49
50  resets:
51    maxItems: 1
52
53  syscon:
54    description: System controller phandle for Gemini systems
55    $ref: /schemas/types.yaml#/definitions/phandle
56
57required:
58  - compatible
59  - reg
60  - interrupts
61
62allOf:
63  - if:
64      properties:
65        compatible:
66          contains:
67            const: cortina,gemini-timer
68    then:
69      required:
70        - syscon
71    else:
72      properties:
73        syscon: false
74
75additionalProperties: false
76
77examples:
78  - |
79    #include <dt-bindings/interrupt-controller/irq.h>
80
81    timer@43000000 {
82        compatible = "faraday,fttmr010";
83        reg = <0x43000000 0x1000>;
84        interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
85                    <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
86                    <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
87        clocks = <&pclk>, <&extclk>;
88        clock-names = "PCLK", "EXTCLK";
89    };
90