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
|
From 8cf805e57fa5cf4c872883968def037cd7c903cc Mon Sep 17 00:00:00 2001
From: Aaron Shaw <shawaj@gmail.com>
Date: Fri, 5 Jan 2018 15:08:37 +0000
Subject: [PATCH 158/454] add additional overrides to rotary-encoder overlay
(#2334)
---
arch/arm/boot/dts/overlays/README | 23 +++++++++++++++++++
.../dts/overlays/rotary-encoder-overlay.dts | 18 +++++++++++----
2 files changed, 36 insertions(+), 5 deletions(-)
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1331,6 +1331,29 @@ Params: rotary0_pin_a GPIO con
(default 4).
rotary0_pin_b GPIO connected to rotary encoder channel B
(default 17).
+ relative_axis register a relative axis rather than an
+ absolute one. Relative axis will only
+ generate +1/-1 events on the input device,
+ hence no steps need to be passed.
+ linux_axis the input subsystem axis to map to this
+ rotary encoder. Defaults to 0 (ABS_X / REL_X)
+ rollover Automatic rollover when the rotary value
+ becomes greater than the specified steps or
+ smaller than 0. For absolute axis only.
+ steps-per-period Number of steps (stable states) per period.
+ The values have the following meaning:
+ 1: Full-period mode (default)
+ 2: Half-period mode
+ 4: Quarter-period mode
+ steps Number of steps in a full turnaround of the
+ encoder. Only relevant for absolute axis.
+ Defaults to 24 which is a typical value for
+ such devices.
+ wakeup Boolean, rotary encoder can wake up the
+ system.
+ encoding String, the method used to encode steps.
+ Supported are "gray" (the default and more
+ common) and "binary".
Name: rpi-backlight
--- a/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts
+++ b/arch/arm/boot/dts/overlays/rotary-encoder-overlay.dts
@@ -28,16 +28,24 @@
gpios = <&gpio 4 0>, <&gpio 17 0>;
linux,axis = <0>; /* REL_X */
rotary-encoder,encoding = "gray";
- rotary-encoder,relative-axis;
+ rotary-encoder,steps = <24>; /* 24 default */
+ rotary-encoder,steps-per-period = <1>; /* corresponds to full period mode. See README */
};
};
};
__overrides__ {
- rotary0_pin_a = <&rotary0>,"gpios:4",
- <&rotary0_pins>,"brcm,pins:0";
- rotary0_pin_b = <&rotary0>,"gpios:16",
- <&rotary0_pins>,"brcm,pins:4";
+ rotary0_pin_a = <&rotary0>,"gpios:4",
+ <&rotary0_pins>,"brcm,pins:0";
+ rotary0_pin_b = <&rotary0>,"gpios:16",
+ <&rotary0_pins>,"brcm,pins:4";
+ relative_axis = <&rotary0>,"rotary-encoder,relative-axis?";
+ linux_axis = <&rotary0>,"linux,axis:0";
+ rollover = <&rotary0>,"rotary-encoder,rollover?";
+ steps-per-period = <&rotary0>,"rotary-encoder,steps-per-period:0";
+ steps = <&rotary0>,"rotary-encoder,steps:0";
+ wakeup = <&rotary0>,"wakeup-source?";
+ encoding = <&rotary0>,"rotary-encoder,encoding";
};
};
|