blob: de7e2b9ce3c45db9eb638570f165643d193a4c1c [file] [log] [blame]
# Copyright (c) 2022, Valerio Setti <vsetti@baylibre.com
# SPDX-License-Identifier: Apache-2.0
description: STM32 quadrature decoder
compatible: "st,stm32-qdec"
include:
- name: base.yaml
- name: pinctrl-device.yaml
properties:
pinctrl-0:
required: true
pinctrl-names:
required: true
st,input-polarity-inverted:
type: boolean
description: Encoder is triggered by a falling edge on the input pin
st,input-filter-level:
type: int
description: |
Intensity of the filter applied to the input signal. This is
implemented by scaling the sampling frequency and adding a counter
in which N consecutive samples with same value are needed to validate
a transition.
Mapping is as follows (F_clk is the timer's clock):
0: No filter, sampling is done at F_dts (default value)
1: Fs = F_clk, N=2
2: Fs = F_clk, N=4
3: Fs = F_clk, N=8
4: Fs = F_clk/2, N=6
5: Fs = F_clk/2, N=8
6: Fs = F_clk/4, N=6
7: Fs = F_clk/4, N=8
8: Fs = F_clk/8, N=6
9: Fs = F_clk/8, N=8
10: Fs = F_clk/16, N=5
11: Fs = F_clk/16, N=6
12: Fs = F_clk/16, N=8
13: Fs = F_clk/32, N=5
14: Fs = F_clk/32, N=6
15: Fs = F_clk/32, N=8
Default value is set by hardware at reset
default: 0
enum:
- 0 # No filter
- 1 # FDIV1_N2
- 2 # FDIV1_N4
- 3 # FDIV1_N8
- 4 # FDIV2_N6
- 5 # FDIV2_N8
- 6 # FDIV4_N6
- 7 # FDIV4_N8
- 8 # FDIV8_N6
- 9 # FDIV8_N8
- 10 # FDIV16_N5
- 11 # FDIV16_N6
- 12 # FDIV16_N8
- 13 # FDIV32_N5
- 14 # FDIV32_N6
- 15 # FDIV32_N8
st,counts-per-revolution:
type: int
required: true
description: |
This is a number >= 1 that is used to determine how many revolutions
were done based on the current counter's value.