1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/timer/ti,timer-dm.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TI dual-mode timer
8
9maintainers:
10  - Tony Lindgren <tony@atomide.com>
11
12description: |
13  The TI dual-mode timer is a general purpose timer with PWM capabilities.
14
15properties:
16  compatible:
17    oneOf:
18      - items:
19          - enum:
20              - ti,am335x-timer
21              - ti,am335x-timer-1ms
22              - ti,am654-timer
23              - ti,dm814-timer
24              - ti,dm816-timer
25              - ti,omap2420-timer
26              - ti,omap3430-timer
27              - ti,omap4430-timer
28              - ti,omap5430-timer
29      - items:
30          - const: ti,am4372-timer
31          - const: ti,am335x-timer
32      - items:
33          - const: ti,am4372-timer-1ms
34          - const: ti,am335x-timer-1ms
35
36  reg:
37    items:
38      - description: IO address
39      - description: L3 to L4 mapping for omap4/5 L4 ABE
40    minItems: 1
41
42  clocks:
43    items:
44      - description: Functional clock
45      - description: System clock for omap4/5 and dra7
46    minItems: 1
47
48  clock-names:
49    items:
50      - const: fck
51      - const: timer_sys_ck
52    minItems: 1
53
54  power-domains:
55    description:
56      Power domain if available
57    maxItems: 1
58
59  interrupts:
60    description:
61      Interrupt if available. The timer PWM features may be usable
62      in a limited way even without interrupts.
63    maxItems: 1
64
65  ti,timer-alwon:
66    description:
67      Timer is always enabled when the SoC is powered. Note that some SoCs like
68      am335x can suspend to PM coprocessor RTC only mode and in that case the
69      SoC power is cut including timers.
70    type: boolean
71
72  ti,timer-dsp:
73    description:
74      Timer is routable to the DSP in addition to the operating system.
75    type: boolean
76
77  ti,timer-pwm:
78    description:
79      Timer has been wired for PWM capability.
80    type: boolean
81
82  ti,timer-secure:
83    description:
84      Timer access has been limited to secure mode only.
85    type: boolean
86
87  ti,hwmods:
88    description:
89      Name of the HWMOD associated with timer. This is for legacy
90      omap2/3 platforms only.
91    $ref: /schemas/types.yaml#/definitions/string
92    deprecated: true
93
94required:
95  - compatible
96  - reg
97
98additionalProperties: false
99
100allOf:
101  - if:
102      properties:
103        compatible:
104          contains:
105            const: ti,am654-timer
106    then:
107      required:
108        - power-domains
109    else:
110      required:
111        - interrupts
112
113  - if:
114      not:
115        properties:
116          compatible:
117            contains:
118              enum:
119                - ti,omap3430-timer
120                - ti,omap4430-timer
121                - ti,omap5430-timer
122    then:
123      properties:
124        reg:
125          maxItems: 1
126        clocks:
127          maxItems: 1
128        clock-names:
129          maxItems: 1
130
131  - if:
132      properties:
133        compatible:
134          contains:
135            enum:
136              - ti,dm814-timer
137              - ti,dm816-timer
138              - ti,omap2420-timer
139              - ti,omap3430-timer
140    then:
141      properties:
142        ti,hwmods:
143          items:
144            - pattern: "^timer([1-9]|1[0-2])$"
145    else:
146      properties:
147        ti,hwmods: false
148
149examples:
150  - |
151    timer1: timer@0 {
152      compatible = "ti,am335x-timer-1ms";
153      reg = <0x0 0x400>;
154      interrupts = <67>;
155      ti,timer-alwon;
156      clocks = <&timer1_fck>;
157      clock-names = "fck";
158    };
159...
160