# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) # Copyright 2019-2020 Artur Rojek %YAML 1.2 --- $id: http://devicetree.org/schemas/input/adc-joystick.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: ADC attached joystick maintainers: - Artur Rojek <contact@artur-rojek.eu> description: > Bindings for joystick devices connected to ADC controllers supporting the Industrial I/O subsystem. allOf: - $ref: input.yaml# properties: compatible: const: adc-joystick io-channels: minItems: 1 maxItems: 1024 description: > List of phandle and IIO specifier pairs. Each pair defines one ADC channel to which a joystick axis is connected. See https://github.com/devicetree-org/dt-schema/blob/master/schemas/iio/iio-consumer.yaml for details. poll-interval: true '#address-cells': const: 1 '#size-cells': const: 0 required: - compatible - io-channels - '#address-cells' - '#size-cells' additionalProperties: false patternProperties: "^axis@[0-9a-f]+$": type: object $ref: input.yaml# description: > Represents a joystick axis bound to the given ADC channel. For each entry in the io-channels list, one axis subnode with a matching reg property must be specified. properties: reg: minimum: 0 maximum: 1023 description: Index of an io-channels list entry bound to this axis. linux,code: description: EV_ABS specific event code generated by the axis. abs-range: $ref: /schemas/types.yaml#/definitions/uint32-array items: - description: minimum value - description: maximum value description: > Minimum and maximum values produced by the axis. For an ABS_X axis this will be the left-most and right-most inclination of the joystick. If min > max, it is left to userspace to treat the axis as inverted. This property is interpreted as two signed 32 bit values. abs-fuzz: $ref: /schemas/types.yaml#/definitions/uint32 description: > Amount of noise in the input value. Omitting this property indicates the axis is precise. abs-flat: $ref: /schemas/types.yaml#/definitions/uint32 description: > Axial "deadzone", or area around the center position, where the axis is considered to be at rest. Omitting this property indicates the axis always returns to exactly the center position. required: - reg - linux,code - abs-range additionalProperties: false examples: - | #include <dt-bindings/iio/adc/ingenic,adc.h> #include <dt-bindings/input/input.h> joystick: adc-joystick { compatible = "adc-joystick"; io-channels = <&adc INGENIC_ADC_TOUCH_XP>, <&adc INGENIC_ADC_TOUCH_YP>; #address-cells = <1>; #size-cells = <0>; axis@0 { reg = <0>; linux,code = <ABS_X>; abs-range = <3300 0>; abs-fuzz = <4>; abs-flat = <200>; }; axis@1 { reg = <1>; linux,code = <ABS_Y>; abs-range = <0 3300>; abs-fuzz = <4>; abs-flat = <200>; }; };