Documentation / devicetree / bindings / mfd / st,stm32-lptimer.yaml


Based on kernel version 6.10. Page generated on 2024-07-16 09:00 EST.

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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/st,stm32-lptimer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics STM32 Low-Power Timers

description: |
  The STM32 Low-Power Timer (LPTIM) is a 16-bit timer that provides several
  functions
   - PWM output (with programmable prescaler, configurable polarity)
   - Trigger source for STM32 ADC/DAC (LPTIM_OUT)
   - Several counter modes:
     - quadrature encoder to detect angular position and direction of rotary
       elements, from IN1 and IN2 input signals.
     - simple counter from IN1 input signal.

maintainers:
  - Fabrice Gasnier <fabrice.gasnier@foss.st.com>

properties:
  compatible:
    const: st,stm32-lptimer

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: mux

  interrupts:
    maxItems: 1
 
  "#address-cells":
    const: 1
 
  "#size-cells":
    const: 0

  wakeup-source: true

  access-controllers:
    minItems: 1
    maxItems: 2

  pwm:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: st,stm32-pwm-lp
 
      "#pwm-cells":
        const: 3

    required:
      - "#pwm-cells"
      - compatible

  counter:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: st,stm32-lptimer-counter

    required:
      - compatible

  timer:
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: st,stm32-lptimer-timer

    required:
      - compatible

patternProperties:
  "^trigger@[0-9]+$":
    type: object
    additionalProperties: false

    properties:
      compatible:
        const: st,stm32-lptimer-trigger

      reg:
        description: Identify trigger hardware block.
        items:
          minimum: 0
          maximum: 2

    required:
      - compatible
      - reg

required:
  - "#address-cells"
  - "#size-cells"
  - compatible
  - reg
  - clocks
  - clock-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/stm32mp1-clks.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    timer@40002400 {
      compatible = "st,stm32-lptimer";
      reg = <0x40002400 0x400>;
      clocks = <&timer_clk>;
      clock-names = "mux";
      interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
      #address-cells = <1>;
      #size-cells = <0>;
 
      pwm {
        compatible = "st,stm32-pwm-lp";
        #pwm-cells = <3>;
      };
 
      trigger@0 {
        compatible = "st,stm32-lptimer-trigger";
        reg = <0>;
      };
 
      counter {
        compatible = "st,stm32-lptimer-counter";
      };
 
      timer {
        compatible = "st,stm32-lptimer-timer";
      };
    };

...