1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/input/rotary-encoder.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Rotary encoder 8 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-encoder 18 19 gpios: 20 minItems: 2 21 22 linux,axis: 23 default: 0 24 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/uint32 30 default: 24 31 description: 32 Number of steps in a full turnaround of the 33 encoder. Only relevant for absolute axis. Defaults to 24 which is a 34 typical value for such devices. 35 36 rotary-encoder,relative-axis: 37 $ref: /schemas/types.yaml#/definitions/flag 38 description: 39 register a relative axis rather than an 40 absolute one. Relative axis will only generate +1/-1 events on the input 41 device, hence no steps need to be passed. 42 43 rotary-encoder,rollover: 44 $ref: /schemas/types.yaml#/definitions/int32 45 description: 46 Automatic rollover when the rotary value becomes 47 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/uint32 51 default: 1 52 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 mode 58 4: Quarter-period mode 59 60 wakeup-source: true 61 62 rotary-encoder,encoding: 63 $ref: /schemas/types.yaml#/definitions/string 64 description: the method used to encode steps. 65 enum: [gray, binary] 66 67 rotary-encoder,half-period: 68 $ref: /schemas/types.yaml#/definitions/flag 69 deprecated: true 70 description: 71 Makes the driver work on half-period mode. 72 This property is deprecated. Instead, a 'steps-per-period ' value should 73 be used, such as "rotary-encoder,steps-per-period = <2>". 74 75required: 76 - compatible 77 - gpios 78 79additionalProperties: false 80 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