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@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  "#address-cells":
37    const: 1
38
39  "#size-cells":
40    const: 0
41
42  pwm:
43    type: object
44
45    properties:
46      compatible:
47        const: st,stm32-pwm-lp
48
49      "#pwm-cells":
50        const: 3
51
52    required:
53      - "#pwm-cells"
54      - compatible
55
56patternProperties:
57  "^trigger@[0-9]+$":
58    type: object
59
60    properties:
61      compatible:
62        const: st,stm32-lptimer-trigger
63
64      reg:
65        description: Identify trigger hardware block.
66        items:
67         minimum: 0
68         maximum: 2
69
70    required:
71      - compatible
72      - reg
73
74  counter:
75    type: object
76
77    properties:
78      compatible:
79        const: st,stm32-lptimer-counter
80
81    required:
82      - compatible
83
84required:
85  - "#address-cells"
86  - "#size-cells"
87  - compatible
88  - reg
89  - clocks
90  - clock-names
91
92additionalProperties: false
93
94examples:
95  - |
96    #include <dt-bindings/clock/stm32mp1-clks.h>
97    timer@40002400 {
98      compatible = "st,stm32-lptimer";
99      reg = <0x40002400 0x400>;
100      clocks = <&timer_clk>;
101      clock-names = "mux";
102      #address-cells = <1>;
103      #size-cells = <0>;
104
105      pwm {
106        compatible = "st,stm32-pwm-lp";
107        #pwm-cells = <3>;
108      };
109
110      trigger@0 {
111        compatible = "st,stm32-lptimer-trigger";
112        reg = <0>;
113      };
114
115      counter {
116        compatible = "st,stm32-lptimer-counter";
117      };
118    };
119
120...
121