Thread (6 messages) 6 messages, 4 authors, 2014-05-19

Re: [PATCH] input: rotary encoder: implement quarter period mode

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2014-05-19 03:45:23
Also in: linux-devicetree

On Mon, May 19, 2014 at 12:26:59AM -0300, Ezequiel García wrote:
On 08 May 02:01 PM, Ezequiel García wrote:
quoted
On 07 May 11:59 AM, Dmitry Torokhov wrote:
quoted
On Wed, May 07, 2014 at 03:45:43PM +0100, Mark Rutland wrote:
quoted
On Wed, Dec 18, 2013 at 02:43:18PM +0000, Sascha Hauer wrote:
quoted
Some rotary encoders have a stable state in all output state
combinations. Add support for this type of encoder.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Daniel Mack <daniel@zonque.org>
Cc: linux-input@vger.kernel.org
Cc: devicetree@vger.kernel.org
---
 .../devicetree/bindings/input/rotary-encoder.txt   |  1 +
 Documentation/input/rotary-encoder.txt             |  9 +++++--
 drivers/input/misc/rotary_encoder.c                | 30 ++++++++++++++++++++--
 include/linux/rotary_encoder.h                     |  1 +
 4 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/input/rotary-encoder.txt b/Documentation/devicetree/bindings/input/rotary-encoder.txt
index 3315495..cbdb29b 100644
--- a/Documentation/devicetree/bindings/input/rotary-encoder.txt
+++ b/Documentation/devicetree/bindings/input/rotary-encoder.txt
@@ -15,6 +15,7 @@ Optional properties:
 - rotary-encoder,rollover: Automatic rollove when the rotary value becomes
   greater than the specified steps or smaller than 0. For absolute axis only.
 - rotary-encoder,half-period: Makes the driver work on half-period mode.
+- rotary-encoder,quarter-period: Makes the driver work on quarter-period mode.
The new property looks as sane to me as the half-period property, so for
the binding addition:
Actually, maybe we should deprecate rotary-encoder,half-period and
instead add rotary-encoder,type property?
Mark: what do you say?

I can fix a few patches if everyone agrees...
After some thought, it seemed to me we can define a more specific property
to describe this, instead of a generic "type".

The difference among these three "modes" is the number of turns needed to make
a step.

In the current driver, the default is 4 turns per step, where for the half-period
mode it's 2 turns per step. Now, we need to support 1 turn per step and hence
Sascha proposes a new quarter-period mode.

Given we only need to describe the number of turns per step, I'd say it's
more accurate and less confusing to deprecate the bool half-period property
and instead introduce a "rotary-encoder,turns-per-step" integer property.

How does this sound?
We'd have to "filter out" invalid step settings, but that sounds fine by
me.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help