Message ID | 20190107164249.2342-3-nazgul33@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | input: rotary-encoder: Support key events | expand |
On Tue, Jan 08, 2019 at 01:42:49AM +0900, Donghoon Han wrote: > Add DT binding document for rotary-encoder, keycode options. > > Signed-off-by: Donghoon Han <nazgul33@gmail.com> > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Cc: Daniel Mack <daniel@caiaq.de> > Cc: devicetree@vger.kernel.org > To: linux-input@vger.kernel.org > --- > .../devicetree/bindings/input/rotary-encoder.txt | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/Documentation/devicetree/bindings/input/rotary-encoder.txt b/Documentation/devicetree/bindings/input/rotary-encoder.txt > index f99fe5cdeaec..9986ec2af2d4 100644 > --- a/Documentation/devicetree/bindings/input/rotary-encoder.txt > +++ b/Documentation/devicetree/bindings/input/rotary-encoder.txt > @@ -12,6 +12,10 @@ Optional properties: > - rotary-encoder,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. > +- rotary-encoder,relative-keys : generate pair of key events. This setting > + behaves just like relative-axis, generating key events instead. > + (Keycodes[2] corresponds to -1/1 events.) > +- rotary-encoder,relative-keycodes : keycodes for relative-keys Given that keycodes are linux-specific, I think the property should be linux,keycodes. Also, I am not sure we need separate rotary-encoder,relative-keys property as we can infer that we want to generate keys from presence of linux,keycodes property. Rob, any comments? > - rotary-encoder,rollover: Automatic rollover when the rotary value becomes > greater than the specified steps or smaller than 0. For absolute axis only. > - rotary-encoder,steps-per-period: Number of steps (stable states) per period. > @@ -48,3 +52,11 @@ Example: > rotary-encoder,encoding = "binary"; > rotary-encoder,rollover; > }; > + > + rotary@2 { > + compatible = "rotary-encoder"; > + gpios = <&gpio 21 0>, <&gpio 22 0>; > + rotary-encoder,relative-keys; > + rotary-encoder,relative-keycode = <103>, <108>; > + rotary-encoder,steps-per-period = <2>; > + }; > -- > 2.17.1 > Thanks.
[ resending to Rob... ] On Tue, Jan 08, 2019 at 01:42:49AM +0900, Donghoon Han wrote: > Add DT binding document for rotary-encoder, keycode options. > > Signed-off-by: Donghoon Han <nazgul33@gmail.com> > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> > Cc: Daniel Mack <daniel@caiaq.de> > Cc: devicetree@vger.kernel.org > To: linux-input@vger.kernel.org > --- > .../devicetree/bindings/input/rotary-encoder.txt | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/Documentation/devicetree/bindings/input/rotary-encoder.txt b/Documentation/devicetree/bindings/input/rotary-encoder.txt > index f99fe5cdeaec..9986ec2af2d4 100644 > --- a/Documentation/devicetree/bindings/input/rotary-encoder.txt > +++ b/Documentation/devicetree/bindings/input/rotary-encoder.txt > @@ -12,6 +12,10 @@ Optional properties: > - rotary-encoder,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. > +- rotary-encoder,relative-keys : generate pair of key events. This setting > + behaves just like relative-axis, generating key events instead. > + (Keycodes[2] corresponds to -1/1 events.) > +- rotary-encoder,relative-keycodes : keycodes for relative-keys Given that keycodes are linux-specific, I think the property should be linux,keycodes. Also, I am not sure we need separate rotary-encoder,relative-keys property as we can infer that we want to generate keys from presence of linux,keycodes property. Rob, any comments? > - rotary-encoder,rollover: Automatic rollover when the rotary value becomes > greater than the specified steps or smaller than 0. For absolute axis only. > - rotary-encoder,steps-per-period: Number of steps (stable states) per period. > @@ -48,3 +52,11 @@ Example: > rotary-encoder,encoding = "binary"; > rotary-encoder,rollover; > }; > + > + rotary@2 { > + compatible = "rotary-encoder"; > + gpios = <&gpio 21 0>, <&gpio 22 0>; > + rotary-encoder,relative-keys; > + rotary-encoder,relative-keycode = <103>, <108>; > + rotary-encoder,steps-per-period = <2>; > + }; > -- > 2.17.1 > Thanks.
On Mon, Jan 14, 2019 at 07:52:21PM -0800, Dmitry Torokhov wrote: > On Tue, Jan 08, 2019 at 01:42:49AM +0900, Donghoon Han wrote: > > Add DT binding document for rotary-encoder, keycode options. > > > > Signed-off-by: Donghoon Han <nazgul33@gmail.com> > > Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> > > Cc: Daniel Mack <daniel@caiaq.de> > > Cc: devicetree@vger.kernel.org > > To: linux-input@vger.kernel.org > > --- > > .../devicetree/bindings/input/rotary-encoder.txt | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/input/rotary-encoder.txt b/Documentation/devicetree/bindings/input/rotary-encoder.txt > > index f99fe5cdeaec..9986ec2af2d4 100644 > > --- a/Documentation/devicetree/bindings/input/rotary-encoder.txt > > +++ b/Documentation/devicetree/bindings/input/rotary-encoder.txt > > @@ -12,6 +12,10 @@ Optional properties: > > - rotary-encoder,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. > > +- rotary-encoder,relative-keys : generate pair of key events. This setting > > + behaves just like relative-axis, generating key events instead. > > + (Keycodes[2] corresponds to -1/1 events.) > > +- rotary-encoder,relative-keycodes : keycodes for relative-keys > > Given that keycodes are linux-specific, I think the property should be > linux,keycodes. Also, I am not sure we need separate > rotary-encoder,relative-keys property as we can infer that we want to > generate keys from presence of linux,keycodes property. > > Rob, any comments? Yes, I had similar thoughts.
Hello, i used this rotary-encoder patch in my embedded project and found two errors: First, in drivers/input/misc/rotary_encoder.c, at @@ -237,6 +244,16 @@: instead of + if (err) + dev_err(dev, "unable to get keycodes: %d\n", err); + return err; it must be + if (err) { + dev_err(dev, "unable to get keycodes: %d\n", err); + return err; + } otherwise successful creation of device is not possible. Second, a typo in Documentation/devicetree/bindings/input/rotary-encoder.txt, at @@ -48,3 +52,11 @@: instead of + rotary-encoder,relative-keycode = <103>, <108>; it should be + rotary-encoder,relative-keycodes = <103>, <108>; otherwise keycodes are not found. I am sorry, I know that E-Mail style is not good. I have no time right now, but I'll be back in two weeks. Someone, maybe Mr. Han, could submit a new version of the patch. If not, I'll try to do it on my return. (it could take some time, since I am new to patchwork) Best Regards and thanks Alexey Slepov
diff --git a/Documentation/devicetree/bindings/input/rotary-encoder.txt b/Documentation/devicetree/bindings/input/rotary-encoder.txt index f99fe5cdeaec..9986ec2af2d4 100644 --- a/Documentation/devicetree/bindings/input/rotary-encoder.txt +++ b/Documentation/devicetree/bindings/input/rotary-encoder.txt @@ -12,6 +12,10 @@ Optional properties: - rotary-encoder,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. +- rotary-encoder,relative-keys : generate pair of key events. This setting + behaves just like relative-axis, generating key events instead. + (Keycodes[2] corresponds to -1/1 events.) +- rotary-encoder,relative-keycodes : keycodes for relative-keys - rotary-encoder,rollover: Automatic rollover when the rotary value becomes greater than the specified steps or smaller than 0. For absolute axis only. - rotary-encoder,steps-per-period: Number of steps (stable states) per period. @@ -48,3 +52,11 @@ Example: rotary-encoder,encoding = "binary"; rotary-encoder,rollover; }; + + rotary@2 { + compatible = "rotary-encoder"; + gpios = <&gpio 21 0>, <&gpio 22 0>; + rotary-encoder,relative-keys; + rotary-encoder,relative-keycode = <103>, <108>; + rotary-encoder,steps-per-period = <2>; + };
Add DT binding document for rotary-encoder, keycode options. Signed-off-by: Donghoon Han <nazgul33@gmail.com> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Daniel Mack <daniel@caiaq.de> Cc: devicetree@vger.kernel.org To: linux-input@vger.kernel.org --- .../devicetree/bindings/input/rotary-encoder.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+)