Kernel-4.18.0-80.el8_stm32-timers

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…
};