| # 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. |