blob: f84e09a5743b77c5be31ac4f6f3a979c0122d44d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: STMicroelectronics STM32 Timers
8
9description: |
10 This hardware block provides 3 types of timer along with PWM functionality:
11 - advanced-control timers consist of a 16-bit auto-reload counter driven
12 by a programmable prescaler, break input feature, PWM outputs and
13 complementary PWM outputs channels.
14 - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter
15 driven by a programmable prescaler and PWM outputs.
16 - basic timers consist of a 16-bit auto-reload counter driven by a
17 programmable prescaler.
18
19maintainers:
20 - Fabrice Gasnier <fabrice.gasnier@foss.st.com>
21
22properties:
23 compatible:
24 const: st,stm32-timers
25
26 reg:
27 maxItems: 1
28
29 clocks:
30 maxItems: 1
31
32 clock-names:
33 items:
34 - const: int
35
36 resets:
37 maxItems: 1
38
39 dmas:
40 minItems: 1
41 maxItems: 7
42
43 dma-names:
44 items:
45 enum: [ ch1, ch2, ch3, ch4, up, trig, com ]
46 minItems: 1
47 maxItems: 7
48
49 interrupts:
50 oneOf:
51 - maxItems: 1
52 - maxItems: 4
53
54 interrupt-names:
55 oneOf:
56 - items:
57 - const: global
58 - items:
59 - const: brk
60 - const: up
61 - const: trg-com
62 - const: cc
63
64 "#address-cells":
65 const: 1
66
67 "#size-cells":
68 const: 0
69
70 pwm:
71 type: object
72 additionalProperties: false
73
74 properties:
75 compatible:
76 const: st,stm32-pwm
77
78 "#pwm-cells":
79 const: 3
80
81 st,breakinput:
82 description:
83 One or two <index level filter> to describe break input
84 configurations.
85 $ref: /schemas/types.yaml#/definitions/uint32-matrix
86 items:
87 items:
88 - description: |
89 "index" indicates on which break input (0 or 1) the
90 configuration should be applied.
91 enum: [0, 1]
92 - description: |
93 "level" gives the active level (0=low or 1=high) of the
94 input signal for this configuration
95 enum: [0, 1]
96 - description: |
97 "filter" gives the filtering value (up to 15) to be applied.
98 maximum: 15
99 minItems: 1
100 maxItems: 2
101
102 required:
103 - "#pwm-cells"
104 - compatible
105
106 counter:
107 type: object
108 additionalProperties: false
109
110 properties:
111 compatible:
112 const: st,stm32-timer-counter
113
114 required:
115 - compatible
116
117patternProperties:
118 "^timer@[0-9]+$":
119 type: object
120 additionalProperties: false
121
122 properties:
123 compatible:
124 enum:
125 - st,stm32-timer-trigger
126 - st,stm32h7-timer-trigger
127
128 reg:
129 description: Identify trigger hardware block.
130 items:
131 minimum: 0
132 maximum: 16
133
134 required:
135 - compatible
136 - reg
137
138required:
139 - compatible
140 - reg
141 - clocks
142 - clock-names
143
144additionalProperties: false
145
146examples:
147 - |
148 #include <dt-bindings/clock/stm32mp1-clks.h>
149 timers2: timer@40000000 {
150 #address-cells = <1>;
151 #size-cells = <0>;
152 compatible = "st,stm32-timers";
153 reg = <0x40000000 0x400>;
154 clocks = <&rcc TIM2_K>;
155 clock-names = "int";
156 dmas = <&dmamux1 18 0x400 0x1>,
157 <&dmamux1 19 0x400 0x1>,
158 <&dmamux1 20 0x400 0x1>,
159 <&dmamux1 21 0x400 0x1>,
160 <&dmamux1 22 0x400 0x1>;
161 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
162 pwm {
163 compatible = "st,stm32-pwm";
164 #pwm-cells = <3>;
165 st,breakinput = <0 1 5>;
166 };
167 timer@1 {
168 compatible = "st,stm32-timer-trigger";
169 reg = <1>;
170 };
171 counter {
172 compatible = "st,stm32-timer-counter";
173 };
174 };
175
176...