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