GNU Linux-libre 5.19-rc6-gnu
[releases.git] / Documentation / devicetree / bindings / mfd / st,stm32-timers.yaml
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
7 title: STMicroelectronics STM32 Timers bindings
8
9 description: |
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
19 maintainers:
20   - Fabrice Gasnier <fabrice.gasnier@foss.st.com>
21
22 properties:
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   reset:
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   "#address-cells":
50     const: 1
51
52   "#size-cells":
53     const: 0
54
55   pwm:
56     type: object
57
58     properties:
59       compatible:
60         const: st,stm32-pwm
61
62       "#pwm-cells":
63         const: 3
64
65       st,breakinput:
66         description:
67           One or two <index level filter> to describe break input
68           configurations.
69         $ref: /schemas/types.yaml#/definitions/uint32-matrix
70         items:
71           items:
72             - description: |
73                 "index" indicates on which break input (0 or 1) the
74                 configuration should be applied.
75               enum: [0, 1]
76             - description: |
77                 "level" gives the active level (0=low or 1=high) of the
78                 input signal for this configuration
79               enum: [0, 1]
80             - description: |
81                 "filter" gives the filtering value (up to 15) to be applied.
82               maximum: 15
83         minItems: 1
84         maxItems: 2
85
86     required:
87       - "#pwm-cells"
88       - compatible
89
90 patternProperties:
91   "^timer@[0-9]+$":
92     type: object
93
94     properties:
95       compatible:
96         enum:
97           - st,stm32-timer-trigger
98           - st,stm32h7-timer-trigger
99
100       reg:
101         description: Identify trigger hardware block.
102         items:
103           minimum: 0
104           maximum: 16
105
106     required:
107       - compatible
108       - reg
109
110   counter:
111     type: object
112
113     properties:
114       compatible:
115         const: st,stm32-timer-counter
116
117     required:
118       - compatible
119
120 required:
121   - compatible
122   - reg
123   - clocks
124   - clock-names
125
126 additionalProperties: false
127
128 examples:
129   - |
130     #include <dt-bindings/clock/stm32mp1-clks.h>
131     timers2: timer@40000000 {
132       #address-cells = <1>;
133       #size-cells = <0>;
134       compatible = "st,stm32-timers";
135       reg = <0x40000000 0x400>;
136       clocks = <&rcc TIM2_K>;
137       clock-names = "int";
138       dmas = <&dmamux1 18 0x400 0x1>,
139              <&dmamux1 19 0x400 0x1>,
140              <&dmamux1 20 0x400 0x1>,
141              <&dmamux1 21 0x400 0x1>,
142              <&dmamux1 22 0x400 0x1>;
143       dma-names = "ch1", "ch2", "ch3", "ch4", "up";
144       pwm {
145         compatible = "st,stm32-pwm";
146         #pwm-cells = <3>;
147         st,breakinput = <0 1 5>;
148       };
149       timer@1 {
150         compatible = "st,stm32-timer-trigger";
151         reg = <1>;
152       };
153       counter {
154         compatible = "st,stm32-timer-counter";
155       };
156     };
157
158 ...