1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-C 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 # Copyright 2019-2020 Artur Rojek 2 # Copyright 2019-2020 Artur Rojek 3 %YAML 1.2 3 %YAML 1.2 4 --- 4 --- 5 $id: http://devicetree.org/schemas/input/adc-j 5 $id: http://devicetree.org/schemas/input/adc-joystick.yaml# 6 $schema: http://devicetree.org/meta-schemas/co 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 7 8 title: ADC attached joystick 8 title: ADC attached joystick 9 9 10 maintainers: 10 maintainers: 11 - Artur Rojek <contact@artur-rojek.eu> 11 - Artur Rojek <contact@artur-rojek.eu> 12 12 13 description: > 13 description: > 14 Bindings for joystick devices connected to A 14 Bindings for joystick devices connected to ADC controllers supporting 15 the Industrial I/O subsystem. 15 the Industrial I/O subsystem. 16 16 17 allOf: 17 allOf: 18 - $ref: input.yaml# 18 - $ref: input.yaml# 19 19 20 properties: 20 properties: 21 compatible: 21 compatible: 22 const: adc-joystick 22 const: adc-joystick 23 23 24 io-channels: 24 io-channels: 25 minItems: 1 25 minItems: 1 26 maxItems: 1024 26 maxItems: 1024 27 description: > 27 description: > 28 List of phandle and IIO specifier pairs. 28 List of phandle and IIO specifier pairs. 29 Each pair defines one ADC channel to whi 29 Each pair defines one ADC channel to which a joystick axis is connected. 30 See 30 See 31 https://github.com/devicetree-org/dt-sch 31 https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/iio-consumer.yaml 32 for details. 32 for details. 33 33 34 poll-interval: true 34 poll-interval: true 35 35 36 '#address-cells': 36 '#address-cells': 37 const: 1 37 const: 1 38 38 39 '#size-cells': 39 '#size-cells': 40 const: 0 40 const: 0 41 41 42 required: 42 required: 43 - compatible 43 - compatible 44 - io-channels 44 - io-channels 45 - '#address-cells' 45 - '#address-cells' 46 - '#size-cells' 46 - '#size-cells' 47 47 48 additionalProperties: false 48 additionalProperties: false 49 49 50 patternProperties: 50 patternProperties: 51 "^axis@[0-9a-f]+$": 51 "^axis@[0-9a-f]+$": 52 type: object 52 type: object 53 $ref: input.yaml# 53 $ref: input.yaml# 54 description: > 54 description: > 55 Represents a joystick axis bound to the 55 Represents a joystick axis bound to the given ADC channel. 56 For each entry in the io-channels list, 56 For each entry in the io-channels list, one axis subnode with a matching 57 reg property must be specified. 57 reg property must be specified. 58 58 59 properties: 59 properties: 60 reg: 60 reg: 61 minimum: 0 61 minimum: 0 62 maximum: 1023 62 maximum: 1023 63 description: Index of an io-channels l 63 description: Index of an io-channels list entry bound to this axis. 64 64 65 linux,code: 65 linux,code: 66 description: EV_ABS specific event cod 66 description: EV_ABS specific event code generated by the axis. 67 67 68 abs-range: 68 abs-range: 69 $ref: /schemas/types.yaml#/definitions 69 $ref: /schemas/types.yaml#/definitions/uint32-array 70 items: 70 items: 71 - description: minimum value 71 - description: minimum value 72 - description: maximum value 72 - description: maximum value 73 description: > 73 description: > 74 Minimum and maximum values produced 74 Minimum and maximum values produced by the axis. 75 For an ABS_X axis this will be the l 75 For an ABS_X axis this will be the left-most and right-most 76 inclination of the joystick. If min 76 inclination of the joystick. If min > max, it is left to userspace to 77 treat the axis as inverted. 77 treat the axis as inverted. 78 This property is interpreted as two 78 This property is interpreted as two signed 32 bit values. 79 79 80 abs-fuzz: 80 abs-fuzz: 81 $ref: /schemas/types.yaml#/definitions 81 $ref: /schemas/types.yaml#/definitions/uint32 82 description: > 82 description: > 83 Amount of noise in the input value. 83 Amount of noise in the input value. 84 Omitting this property indicates the 84 Omitting this property indicates the axis is precise. 85 85 86 abs-flat: 86 abs-flat: 87 $ref: /schemas/types.yaml#/definitions 87 $ref: /schemas/types.yaml#/definitions/uint32 88 description: > 88 description: > 89 Axial "deadzone", or area around the 89 Axial "deadzone", or area around the center position, where the axis 90 is considered to be at rest. 90 is considered to be at rest. 91 Omitting this property indicates the 91 Omitting this property indicates the axis always returns to exactly 92 the center position. 92 the center position. 93 93 94 required: 94 required: 95 - reg 95 - reg 96 - linux,code 96 - linux,code 97 - abs-range 97 - abs-range 98 98 99 additionalProperties: false 99 additionalProperties: false 100 100 101 examples: 101 examples: 102 - | 102 - | 103 #include <dt-bindings/iio/adc/ingenic,adc. 103 #include <dt-bindings/iio/adc/ingenic,adc.h> 104 #include <dt-bindings/input/input.h> 104 #include <dt-bindings/input/input.h> 105 105 106 joystick: adc-joystick { 106 joystick: adc-joystick { 107 compatible = "adc-joystick"; 107 compatible = "adc-joystick"; 108 io-channels = <&adc INGENIC_ADC_TOUCH_XP 108 io-channels = <&adc INGENIC_ADC_TOUCH_XP>, 109 <&adc INGENIC_ADC_TOUCH_YP 109 <&adc INGENIC_ADC_TOUCH_YP>; 110 #address-cells = <1>; 110 #address-cells = <1>; 111 #size-cells = <0>; 111 #size-cells = <0>; 112 112 113 axis@0 { 113 axis@0 { 114 reg = <0>; 114 reg = <0>; 115 linux,code = <ABS_X>; 115 linux,code = <ABS_X>; 116 abs-range = <3300 0>; 116 abs-range = <3300 0>; 117 abs-fuzz = <4>; 117 abs-fuzz = <4>; 118 abs-flat = <200>; 118 abs-flat = <200>; 119 }; 119 }; 120 axis@1 { 120 axis@1 { 121 reg = <1>; 121 reg = <1>; 122 linux,code = <ABS_Y>; 122 linux,code = <ABS_Y>; 123 abs-range = <0 3300>; 123 abs-range = <0 3300>; 124 abs-fuzz = <4>; 124 abs-fuzz = <4>; 125 abs-flat = <200>; 125 abs-flat = <200>; 126 }; 126 }; 127 }; 127 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.