mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 06:34:11 +08:00
7dde4e7474
This changes how the used gpios are stored (i.e. a struct gpio_descs instead of two struct gpio_desc) and as with >2 gpios the states are numbered differently the function rotary_encoder_get_state returns unencoded numbers instead of grey encoded numbers before. The latter has some implications on how the returned value is used and so the change is bigger than one might expect at first. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Daniel Mack <daniel@zonque.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
47 lines
1.7 KiB
Plaintext
47 lines
1.7 KiB
Plaintext
Rotary encoder DT bindings
|
|
|
|
Required properties:
|
|
- gpios: a spec for at least two GPIOs to be used, most significant first
|
|
|
|
Optional properties:
|
|
- linux,axis: the input subsystem axis to map to this rotary encoder.
|
|
Defaults to 0 (ABS_X / REL_X)
|
|
- rotary-encoder,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.
|
|
- 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,rollover: Automatic rollove 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.
|
|
The values have the following meaning:
|
|
1: Full-period mode (default)
|
|
2: Half-period mode
|
|
4: Quarter-period mode
|
|
- wakeup-source: Boolean, rotary encoder can wake up the system.
|
|
|
|
Deprecated properties:
|
|
- rotary-encoder,half-period: Makes the driver work on half-period mode.
|
|
This property is deprecated. Instead, a 'steps-per-period ' value should
|
|
be used, such as "rotary-encoder,steps-per-period = <2>".
|
|
|
|
See Documentation/input/rotary-encoder.txt for more information.
|
|
|
|
Example:
|
|
|
|
rotary@0 {
|
|
compatible = "rotary-encoder";
|
|
gpios = <&gpio 19 1>, <&gpio 20 0>; /* GPIO19 is inverted */
|
|
linux,axis = <0>; /* REL_X */
|
|
rotary-encoder,relative-axis;
|
|
};
|
|
|
|
rotary@1 {
|
|
compatible = "rotary-encoder";
|
|
gpios = <&gpio 21 0>, <&gpio 22 0>;
|
|
linux,axis = <1>; /* ABS_Y */
|
|
rotary-encoder,steps = <24>;
|
|
rotary-encoder,rollover;
|
|
};
|