91 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/input/rotary-encoder.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Rotary encoder8 9maintainers:10 - Frank Li <Frank.Li@nxp.com>11 12description:13 See Documentation/input/devices/rotary-encoder.rst for more information.14 15properties:16 compatible:17 const: rotary-encoder18 19 gpios:20 minItems: 221 22 linux,axis:23 default: 024 description:25 the input subsystem axis to map to this rotary encoder.26 Defaults to 0 (ABS_X / REL_X)27 28 rotary-encoder,steps:29 $ref: /schemas/types.yaml#/definitions/uint3230 default: 2431 description:32 Number of steps in a full turnaround of the33 encoder. Only relevant for absolute axis. Defaults to 24 which is a34 typical value for such devices.35 36 rotary-encoder,relative-axis:37 $ref: /schemas/types.yaml#/definitions/flag38 description:39 register a relative axis rather than an40 absolute one. Relative axis will only generate +1/-1 events on the input41 device, hence no steps need to be passed.42 43 rotary-encoder,rollover:44 $ref: /schemas/types.yaml#/definitions/int3245 description:46 Automatic rollover when the rotary value becomes47 greater than the specified steps or smaller than 0. For absolute axis only.48 49 rotary-encoder,steps-per-period:50 $ref: /schemas/types.yaml#/definitions/uint3251 default: 152 enum: [1, 2, 4]53 description: |54 Number of steps (stable states) per period.55 The values have the following meaning:56 1: Full-period mode (default)57 2: Half-period mode58 4: Quarter-period mode59 60 wakeup-source: true61 62 rotary-encoder,encoding:63 $ref: /schemas/types.yaml#/definitions/string64 description: the method used to encode steps.65 enum: [gray, binary]66 67 rotary-encoder,half-period:68 $ref: /schemas/types.yaml#/definitions/flag69 deprecated: true70 description:71 Makes the driver work on half-period mode.72 This property is deprecated. Instead, a 'steps-per-period ' value should73 be used, such as "rotary-encoder,steps-per-period = <2>".74 75required:76 - compatible77 - gpios78 79additionalProperties: false80 81examples:82 - |83 rotary {84 compatible = "rotary-encoder";85 gpios = <&gpio 19 1>, <&gpio 20 0>; /* GPIO19 is inverted */86 linux,axis = <0>; /* REL_X */87 rotary-encoder,encoding = "gray";88 rotary-encoder,relative-axis;89 };90 91