17956b0d4SArtur Rojek# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 27956b0d4SArtur Rojek# Copyright 2019-2020 Artur Rojek 37956b0d4SArtur Rojek%YAML 1.2 47956b0d4SArtur Rojek--- 5*fcb52d7dSRob Herring$id: http://devicetree.org/schemas/input/adc-joystick.yaml# 6*fcb52d7dSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 77956b0d4SArtur Rojek 87956b0d4SArtur Rojektitle: ADC attached joystick 97956b0d4SArtur Rojek 107956b0d4SArtur Rojekmaintainers: 117956b0d4SArtur Rojek - Artur Rojek <contact@artur-rojek.eu> 127956b0d4SArtur Rojek 137956b0d4SArtur Rojekdescription: > 147956b0d4SArtur Rojek Bindings for joystick devices connected to ADC controllers supporting 157956b0d4SArtur Rojek the Industrial I/O subsystem. 167956b0d4SArtur Rojek 17c42a5ff5SChris MorganallOf: 18c42a5ff5SChris Morgan - $ref: input.yaml# 19c42a5ff5SChris Morgan 207956b0d4SArtur Rojekproperties: 217956b0d4SArtur Rojek compatible: 227956b0d4SArtur Rojek const: adc-joystick 237956b0d4SArtur Rojek 247956b0d4SArtur Rojek io-channels: 257956b0d4SArtur Rojek minItems: 1 267956b0d4SArtur Rojek maxItems: 1024 277956b0d4SArtur Rojek description: > 287956b0d4SArtur Rojek List of phandle and IIO specifier pairs. 297956b0d4SArtur Rojek Each pair defines one ADC channel to which a joystick axis is connected. 308235ef15SMauro Carvalho Chehab See 318235ef15SMauro Carvalho Chehab https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/iio-consumer.yaml 328235ef15SMauro Carvalho Chehab for details. 337956b0d4SArtur Rojek 34c42a5ff5SChris Morgan poll-interval: true 35c42a5ff5SChris Morgan 367956b0d4SArtur Rojek '#address-cells': 377956b0d4SArtur Rojek const: 1 387956b0d4SArtur Rojek 397956b0d4SArtur Rojek '#size-cells': 407956b0d4SArtur Rojek const: 0 417956b0d4SArtur Rojek 427956b0d4SArtur Rojekrequired: 437956b0d4SArtur Rojek - compatible 447956b0d4SArtur Rojek - io-channels 457956b0d4SArtur Rojek - '#address-cells' 467956b0d4SArtur Rojek - '#size-cells' 477956b0d4SArtur Rojek 487956b0d4SArtur RojekadditionalProperties: false 497956b0d4SArtur Rojek 507956b0d4SArtur RojekpatternProperties: 517956b0d4SArtur Rojek "^axis@[0-9a-f]+$": 527956b0d4SArtur Rojek type: object 538ac14d2cSRob Herring $ref: input.yaml# 547956b0d4SArtur Rojek description: > 557956b0d4SArtur Rojek Represents a joystick axis bound to the given ADC channel. 567956b0d4SArtur Rojek For each entry in the io-channels list, one axis subnode with a matching 577956b0d4SArtur Rojek reg property must be specified. 587956b0d4SArtur Rojek 597956b0d4SArtur Rojek properties: 607956b0d4SArtur Rojek reg: 617956b0d4SArtur Rojek minimum: 0 627956b0d4SArtur Rojek maximum: 1023 637956b0d4SArtur Rojek description: Index of an io-channels list entry bound to this axis. 647956b0d4SArtur Rojek 657956b0d4SArtur Rojek linux,code: 667956b0d4SArtur Rojek description: EV_ABS specific event code generated by the axis. 677956b0d4SArtur Rojek 687956b0d4SArtur Rojek abs-range: 69dca66935SRob Herring $ref: /schemas/types.yaml#/definitions/uint32-array 70dca66935SRob Herring items: 717956b0d4SArtur Rojek - description: minimum value 727956b0d4SArtur Rojek - description: maximum value 737956b0d4SArtur Rojek description: > 747956b0d4SArtur Rojek Minimum and maximum values produced by the axis. 757956b0d4SArtur Rojek For an ABS_X axis this will be the left-most and right-most 767956b0d4SArtur Rojek inclination of the joystick. If min > max, it is left to userspace to 777956b0d4SArtur Rojek treat the axis as inverted. 787956b0d4SArtur Rojek This property is interpreted as two signed 32 bit values. 797956b0d4SArtur Rojek 807956b0d4SArtur Rojek abs-fuzz: 817956b0d4SArtur Rojek $ref: /schemas/types.yaml#/definitions/uint32 827956b0d4SArtur Rojek description: > 837956b0d4SArtur Rojek Amount of noise in the input value. 847956b0d4SArtur Rojek Omitting this property indicates the axis is precise. 857956b0d4SArtur Rojek 867956b0d4SArtur Rojek abs-flat: 877956b0d4SArtur Rojek $ref: /schemas/types.yaml#/definitions/uint32 887956b0d4SArtur Rojek description: > 897956b0d4SArtur Rojek Axial "deadzone", or area around the center position, where the axis 907956b0d4SArtur Rojek is considered to be at rest. 917956b0d4SArtur Rojek Omitting this property indicates the axis always returns to exactly 927956b0d4SArtur Rojek the center position. 937956b0d4SArtur Rojek 947956b0d4SArtur Rojek required: 957956b0d4SArtur Rojek - reg 967956b0d4SArtur Rojek - linux,code 977956b0d4SArtur Rojek - abs-range 987956b0d4SArtur Rojek 997956b0d4SArtur Rojek additionalProperties: false 1007956b0d4SArtur Rojek 1017956b0d4SArtur Rojekexamples: 1027956b0d4SArtur Rojek - | 1037956b0d4SArtur Rojek #include <dt-bindings/iio/adc/ingenic,adc.h> 1047956b0d4SArtur Rojek #include <dt-bindings/input/input.h> 1057956b0d4SArtur Rojek 1067956b0d4SArtur Rojek joystick: adc-joystick { 1077956b0d4SArtur Rojek compatible = "adc-joystick"; 1087956b0d4SArtur Rojek io-channels = <&adc INGENIC_ADC_TOUCH_XP>, 1097956b0d4SArtur Rojek <&adc INGENIC_ADC_TOUCH_YP>; 1107956b0d4SArtur Rojek #address-cells = <1>; 1117956b0d4SArtur Rojek #size-cells = <0>; 1127956b0d4SArtur Rojek 1137956b0d4SArtur Rojek axis@0 { 1147956b0d4SArtur Rojek reg = <0>; 1157956b0d4SArtur Rojek linux,code = <ABS_X>; 1167956b0d4SArtur Rojek abs-range = <3300 0>; 1177956b0d4SArtur Rojek abs-fuzz = <4>; 1187956b0d4SArtur Rojek abs-flat = <200>; 1197956b0d4SArtur Rojek }; 1207956b0d4SArtur Rojek axis@1 { 1217956b0d4SArtur Rojek reg = <1>; 1227956b0d4SArtur Rojek linux,code = <ABS_Y>; 1237956b0d4SArtur Rojek abs-range = <0 3300>; 1247956b0d4SArtur Rojek abs-fuzz = <4>; 1257956b0d4SArtur Rojek abs-flat = <200>; 1267956b0d4SArtur Rojek }; 1277956b0d4SArtur Rojek }; 128