Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# 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 enum:
25 - st,stm32-timers
26 - st,stm32mp25-timers
27
28 reg:
29 maxItems: 1
30
31 clocks:
32 maxItems: 1
33
34 clock-names:
35 items:
36 - const: int
37
38 resets:
39 maxItems: 1
40
41 power-domains:
42 maxItems: 1
43
44 dmas:
45 minItems: 1
46 maxItems: 7
47
48 dma-names:
49 items:
50 enum: [ ch1, ch2, ch3, ch4, up, trig, com ]
51 minItems: 1
52 maxItems: 7
53
54 interrupts:
55 oneOf:
56 - maxItems: 1
57 - maxItems: 4
58
59 interrupt-names:
60 oneOf:
61 - items:
62 - const: global
63 - items:
64 - const: brk
65 - const: up
66 - const: trg-com
67 - const: cc
68
69 "#address-cells":
70 const: 1
71
72 "#size-cells":
73 const: 0
74
75 access-controllers:
76 minItems: 1
77 maxItems: 2
78
79 pwm:
80 type: object
81 additionalProperties: false
82
83 properties:
84 compatible:
85 enum:
86 - st,stm32-pwm
87 - st,stm32mp25-pwm
88
89 "#pwm-cells":
90 const: 3
91
92 st,breakinput:
93 description:
94 One or two <index level filter> to describe break input
95 configurations.
96 $ref: /schemas/types.yaml#/definitions/uint32-matrix
97 items:
98 items:
99 - description: |
100 "index" indicates on which break input (0 or 1) the
101 configuration should be applied.
102 enum: [0, 1]
103 - description: |
104 "level" gives the active level (0=low or 1=high) of the
105 input signal for this configuration
106 enum: [0, 1]
107 - description: |
108 "filter" gives the filtering value (up to 15) to be applied.
109 maximum: 15
110 minItems: 1
111 maxItems: 2
112
113 required:
114 - "#pwm-cells"
115 - compatible
116
117 counter:
118 type: object
119 additionalProperties: false
120
121 properties:
122 compatible:
123 enum:
124 - st,stm32-timer-counter
125 - st,stm32mp25-timer-counter
126
127 required:
128 - compatible
129
130patternProperties:
131 "^timer@[0-9]+$":
132 type: object
133 additionalProperties: false
134
135 properties:
136 compatible:
137 enum:
138 - st,stm32-timer-trigger
139 - st,stm32h7-timer-trigger
140 - st,stm32mp25-timer-trigger
141
142 reg:
143 description: Identify trigger hardware block.
144 items:
145 minimum: 0
146 maximum: 19
147
148 required:
149 - compatible
150 - reg
151
152required:
153 - compatible
154 - reg
155 - clocks
156 - clock-names
157
158additionalProperties: false
159
160examples:
161 - |
162 #include <dt-bindings/clock/stm32mp1-clks.h>
163 timers2: timer@40000000 {
164 #address-cells = <1>;
165 #size-cells = <0>;
166 compatible = "st,stm32-timers";
167 reg = <0x40000000 0x400>;
168 clocks = <&rcc TIM2_K>;
169 clock-names = "int";
170 dmas = <&dmamux1 18 0x400 0x1>,
171 <&dmamux1 19 0x400 0x1>,
172 <&dmamux1 20 0x400 0x1>,
173 <&dmamux1 21 0x400 0x1>,
174 <&dmamux1 22 0x400 0x1>;
175 dma-names = "ch1", "ch2", "ch3", "ch4", "up";
176 pwm {
177 compatible = "st,stm32-pwm";
178 #pwm-cells = <3>;
179 st,breakinput = <0 1 5>;
180 };
181 timer@1 {
182 compatible = "st,stm32-timer-trigger";
183 reg = <1>;
184 };
185 counter {
186 compatible = "st,stm32-timer-counter";
187 };
188 };
189
190...