Re: [RFC PATCH 1/2] Input: rotary-encoder- Add support for absolute encoder

From: R, Vignesh
Date: Tue Jul 19 2016 - 09:06:20 EST


Dmitry,

On 6/16/2016 4:17 PM, Vignesh R wrote:
[...]
>>> On 5/20/2016 10:04 PM, Dmitry Torokhov wrote:
>>>> On Thu, May 19, 2016 at 02:34:00PM +0530, Vignesh R wrote:
>>>>> There are rotary-encoders where GPIO lines reflect the actual position
>>>>> of the rotary encoder dial. For example, if dial points to 9, then four
>>>>> GPIO lines connected to the rotary encoder will read HLLH(1001b = 9).
>>>>> Add support for such rotary-encoder.
>>>>> The driver relies on rotary-encoder,absolute-encoder DT property to
>>>>> detect such encoders.
>>>>> Since, GPIO IRQs are not necessary to work with
>>>>> such encoders, optional polling mode support is added using
>>>>> input_poll_dev skeleton. This is can be used by enabling
>>>>> CONFIG_INPUT_GPIO_ROTARY_ENCODER_POLL_MODE_SUPPORT.
>>>>
>>>> Does this really belong to a rotary encoder and not a new driver that
>>>> simply translates gpio-encoded value into ABS* event?
>>>>
>>>
>>> Currently rotary encoder driver only supports incremental/step counting
>>> rotary devices. However, the device that is there on am335x-ice is an
>>> absolute encoder but, IMO, nevertheless a kind of rotary encoder. The
>>> only difference is that there is no need to count steps and the absolute
>>> position value is always available as binary encoded state of connected
>>> GPIOs.
>>> The hardware on am335x-ice is a mechanical rotary encoder switch
>>> connected over 4 GPIOs. It is same as binary encoder described at [1]
>>> (except there are 4 GPIO lines), so this lead me to add support in
>>> rotary-encoder.
>>>
>>> [1]https://en.wikipedia.org/wiki/Rotary_encoder#Standard_binary_encoding
>>>
>>
>> Could you please comment on how would you like to support above
>> described encoder: As a new driver or with existing driver with new
>> compatible/mode setting via DT or as suggest by Uwe in another reply?
>> IMHO, supporting using existing driver with new mode/compatible string
>> looks a better option as the hardware is a kind of rotary-encoder.
>>

Could you please suggest the right solution here? Do you think new
driver is need to support above described absolute encoder h/w? It would
be great to have your input now, so that I can work on the new set of
patches and submit them for v4.9 merge window as soon as v4.8 merge
window closes?

Regards
Vignesh