75 lines
2.1 KiB
YAML
75 lines
2.1 KiB
YAML
# 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
|
|
required: false
|
|
description: Encoder is triggered by a falling edge on the input pin
|
|
|
|
st,input-filter-level:
|
|
type: int
|
|
required: false
|
|
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.
|