arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / bindings / timer / ti,timer-dm.yaml
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
7 title: TI dual-mode timer
8
9 maintainers:
10   - Tony Lindgren <tony@atomide.com>
11
12 description: |
13   The TI dual-mode timer is a general purpose timer with PWM capabilities.
14
15 properties:
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
94 required:
95   - compatible
96   - reg
97
98 additionalProperties: false
99
100 allOf:
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
149 examples:
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 ...