Merge tag 'drm-next-2020-12-24' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.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   - Benjamin Gaignard <benjamin.gaignard@st.com>
21   - Fabrice Gasnier <fabrice.gasnier@st.com>
22
23 properties:
24   compatible:
25     const: st,stm32-timers
26
27   reg:
28     maxItems: 1
29
30   clocks:
31     maxItems: 1
32
33   clock-names:
34     items:
35       - const: int
36
37   reset:
38     maxItems: 1
39
40   dmas:
41     minItems: 1
42     maxItems: 7
43
44   dma-names:
45     items:
46       enum: [ ch1, ch2, ch3, ch4, up, trig, com ]
47     minItems: 1
48     maxItems: 7
49
50   "#address-cells":
51     const: 1
52
53   "#size-cells":
54     const: 0
55
56   pwm:
57     type: object
58
59     properties:
60       compatible:
61         const: st,stm32-pwm
62
63       "#pwm-cells":
64         const: 3
65
66       st,breakinput:
67         description:
68           One or two <index level filter> to describe break input
69           configurations.
70         $ref: /schemas/types.yaml#/definitions/uint32-matrix
71         items:
72           items:
73             - description: |
74                 "index" indicates on which break input (0 or 1) the
75                 configuration should be applied.
76               enum: [0, 1]
77             - description: |
78                 "level" gives the active level (0=low or 1=high) of the
79                 input signal for this configuration
80               enum: [0, 1]
81             - description: |
82                 "filter" gives the filtering value (up to 15) to be applied.
83               maximum: 15
84         minItems: 1
85         maxItems: 2
86
87     required:
88       - "#pwm-cells"
89       - compatible
90
91 patternProperties:
92   "^timer@[0-9]+$":
93     type: object
94
95     properties:
96       compatible:
97         enum:
98           - st,stm32-timer-trigger
99           - st,stm32h7-timer-trigger
100
101       reg:
102         description: Identify trigger hardware block.
103         items:
104           minimum: 0
105           maximum: 16
106
107     required:
108       - compatible
109       - reg
110
111   counter:
112     type: object
113
114     properties:
115       compatible:
116         const: st,stm32-timer-counter
117
118     required:
119       - compatible
120
121 required:
122   - "#address-cells"
123   - "#size-cells"
124   - compatible
125   - reg
126   - clocks
127   - clock-names
128
129 additionalProperties: false
130
131 examples:
132   - |
133     #include <dt-bindings/clock/stm32mp1-clks.h>
134     timers2: timer@40000000 {
135       #address-cells = <1>;
136       #size-cells = <0>;
137       compatible = "st,stm32-timers";
138       reg = <0x40000000 0x400>;
139       clocks = <&rcc TIM2_K>;
140       clock-names = "int";
141       dmas = <&dmamux1 18 0x400 0x1>,
142              <&dmamux1 19 0x400 0x1>,
143              <&dmamux1 20 0x400 0x1>,
144              <&dmamux1 21 0x400 0x1>,
145              <&dmamux1 22 0x400 0x1>;
146       dma-names = "ch1", "ch2", "ch3", "ch4", "up";
147       pwm {
148         compatible = "st,stm32-pwm";
149         #pwm-cells = <3>;
150         st,breakinput = <0 1 5>;
151       };
152       timer@1 {
153         compatible = "st,stm32-timer-trigger";
154         reg = <1>;
155       };
156       counter {
157         compatible = "st,stm32-timer-counter";
158       };
159     };
160
161 ...