hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
STM32 Timers driver bindings
 
This IP provides 3 types of timer along with PWM functionality:
- advanced-control timers consist of a 16-bit auto-reload counter driven by a programmable
  prescaler, break input feature, PWM outputs and complementary PWM ouputs channels.
- general-purpose timers consist of a 16-bit or 32-bit auto-reload counter driven by a
  programmable prescaler and PWM outputs.
- basic timers consist of a 16-bit auto-reload counter driven by a programmable prescaler.
 
Required parameters:
- compatible: must be "st,stm32-timers"
 
- reg:            Physical base address and length of the controller's
           registers.
- clock-names:        Set to "int".
- clocks:         Phandle to the clock used by the timer module.
           For Clk properties, please refer to ../clock/clock-bindings.txt
 
Optional parameters:
- resets:        Phandle to the parent reset controller.
           See ../reset/st,stm32-rcc.txt
- dmas:            List of phandle to dma channels that can be used for
           this timer instance. There may be up to 7 dma channels.
- dma-names:        List of dma names. Must match 'dmas' property. Valid
           names are: "ch1", "ch2", "ch3", "ch4", "up", "trig",
           "com".
 
Optional subnodes:
- pwm:            See ../pwm/pwm-stm32.txt
- timer:        See ../iio/timer/stm32-timer-trigger.txt
 
Example:
   timers@40010000 {
       #address-cells = <1>;
       #size-cells = <0>;
       compatible = "st,stm32-timers";
       reg = <0x40010000 0x400>;
       clocks = <&rcc 0 160>;
       clock-names = "int";
 
       pwm {
           compatible = "st,stm32-pwm";
           pinctrl-0    = <&pwm1_pins>;
           pinctrl-names    = "default";
       };
 
       timer@0 {
           compatible = "st,stm32-timer-trigger";
           reg = <0>;
       };
   };
 
Example with all dmas:
   timer@40010000 {
       ...
       dmas = <&dmamux1 11 0x400 0x0>,
              <&dmamux1 12 0x400 0x0>,
              <&dmamux1 13 0x400 0x0>,
              <&dmamux1 14 0x400 0x0>,
              <&dmamux1 15 0x400 0x0>,
              <&dmamux1 16 0x400 0x0>,
              <&dmamux1 17 0x400 0x0>;
       dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig", "com";
       ...
       child nodes...
   };