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