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-lptimer.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: STMicroelectronics STM32 Low-Power Timers bindings
8
9description: |
10  The STM32 Low-Power Timer (LPTIM) is a 16-bit timer that provides several
11  functions
12   - PWM output (with programmable prescaler, configurable polarity)
13   - Trigger source for STM32 ADC/DAC (LPTIM_OUT)
14   - Several counter modes:
15     - quadrature encoder to detect angular position and direction of rotary
16       elements, from IN1 and IN2 input signals.
17     - simple counter from IN1 input signal.
18
19maintainers:
20  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>
21
22properties:
23  compatible:
24    const: st,stm32-lptimer
25
26  reg:
27    maxItems: 1
28
29  clocks:
30    maxItems: 1
31
32  clock-names:
33    items:
34      - const: mux
35
36  interrupts:
37    maxItems: 1
38
39  "#address-cells":
40    const: 1
41
42  "#size-cells":
43    const: 0
44
45  wakeup-source: true
46
47  pwm:
48    type: object
49
50    properties:
51      compatible:
52        const: st,stm32-pwm-lp
53
54      "#pwm-cells":
55        const: 3
56
57    required:
58      - "#pwm-cells"
59      - compatible
60
61patternProperties:
62  "^trigger@[0-9]+$":
63    type: object
64
65    properties:
66      compatible:
67        const: st,stm32-lptimer-trigger
68
69      reg:
70        description: Identify trigger hardware block.
71        items:
72          minimum: 0
73          maximum: 2
74
75    required:
76      - compatible
77      - reg
78
79  counter:
80    type: object
81
82    properties:
83      compatible:
84        const: st,stm32-lptimer-counter
85
86    required:
87      - compatible
88
89  timer:
90    type: object
91
92    properties:
93      compatible:
94        const: st,stm32-lptimer-timer
95
96    required:
97      - compatible
98
99required:
100  - "#address-cells"
101  - "#size-cells"
102  - compatible
103  - reg
104  - clocks
105  - clock-names
106
107additionalProperties: false
108
109examples:
110  - |
111    #include <dt-bindings/clock/stm32mp1-clks.h>
112    #include <dt-bindings/interrupt-controller/arm-gic.h>
113    timer@40002400 {
114      compatible = "st,stm32-lptimer";
115      reg = <0x40002400 0x400>;
116      clocks = <&timer_clk>;
117      clock-names = "mux";
118      interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
119      #address-cells = <1>;
120      #size-cells = <0>;
121
122      pwm {
123        compatible = "st,stm32-pwm-lp";
124        #pwm-cells = <3>;
125      };
126
127      trigger@0 {
128        compatible = "st,stm32-lptimer-trigger";
129        reg = <0>;
130      };
131
132      counter {
133        compatible = "st,stm32-lptimer-counter";
134      };
135
136      timer {
137        compatible = "st,stm32-lptimer-timer";
138      };
139    };
140
141...
142