xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/st,stm32-lptimer.yaml (revision 257e70f1d5ee61037c8c59b116538d3b6b1427a2)
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
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    additionalProperties: false
50
51    properties:
52      compatible:
53        const: st,stm32-pwm-lp
54
55      "#pwm-cells":
56        const: 3
57
58    required:
59      - "#pwm-cells"
60      - compatible
61
62  counter:
63    type: object
64    additionalProperties: false
65
66    properties:
67      compatible:
68        const: st,stm32-lptimer-counter
69
70    required:
71      - compatible
72
73  timer:
74    type: object
75    additionalProperties: false
76
77    properties:
78      compatible:
79        const: st,stm32-lptimer-timer
80
81    required:
82      - compatible
83
84patternProperties:
85  "^trigger@[0-9]+$":
86    type: object
87    additionalProperties: false
88
89    properties:
90      compatible:
91        const: st,stm32-lptimer-trigger
92
93      reg:
94        description: Identify trigger hardware block.
95        items:
96          minimum: 0
97          maximum: 2
98
99    required:
100      - compatible
101      - reg
102
103required:
104  - "#address-cells"
105  - "#size-cells"
106  - compatible
107  - reg
108  - clocks
109  - clock-names
110
111additionalProperties: false
112
113examples:
114  - |
115    #include <dt-bindings/clock/stm32mp1-clks.h>
116    #include <dt-bindings/interrupt-controller/arm-gic.h>
117    timer@40002400 {
118      compatible = "st,stm32-lptimer";
119      reg = <0x40002400 0x400>;
120      clocks = <&timer_clk>;
121      clock-names = "mux";
122      interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
123      #address-cells = <1>;
124      #size-cells = <0>;
125
126      pwm {
127        compatible = "st,stm32-pwm-lp";
128        #pwm-cells = <3>;
129      };
130
131      trigger@0 {
132        compatible = "st,stm32-lptimer-trigger";
133        reg = <0>;
134      };
135
136      counter {
137        compatible = "st,stm32-lptimer-counter";
138      };
139
140      timer {
141        compatible = "st,stm32-lptimer-timer";
142      };
143    };
144
145...
146