lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221031190159.1341027-2-lis8215@gmail.com>
Date:   Mon, 31 Oct 2022 22:01:58 +0300
From:   Siarhei Volkau <lis8215@...il.com>
To:     unlisted-recipients:; (no To-header on input)
Cc:     Paul Cercueil <paul@...pouillou.net>,
        Siarhei Volkau <lis8215@...il.com>,
        Dmitry Torokhov <dmitry.torokhov@...il.com>,
        Rob Herring <robh+dt@...nel.org>,
        Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
        Artur Rojek <contact@...ur-rojek.eu>,
        linux-input@...r.kernel.org, devicetree@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: [RFC PATCH 1/2] dt-bindings: adc-joystick: add valid-range

The valid-range property aims to cover detachable/lock-able
joysticks where measured value goes outside valid-range.

Signed-off-by: Siarhei Volkau <lis8215@...il.com>
---
 .../bindings/input/adc-joystick.yaml          | 62 +++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/adc-joystick.yaml b/Documentation/devicetree/bindings/input/adc-joystick.yaml
index da0f8dfca..0483f0afe 100644
--- a/Documentation/devicetree/bindings/input/adc-joystick.yaml
+++ b/Documentation/devicetree/bindings/input/adc-joystick.yaml
@@ -91,6 +91,20 @@ patternProperties:
           Omitting this property indicates the axis always returns to exactly
           the center position.
 
+      valid-range:
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+        items:
+          - description: minimum value
+          - description: maximum value
+        description: >
+          Minimum and maximum values which are still valid for the axis.
+          If the value is outside the range an event won't emitted.
+          Shall fully cover the abs-range with some space added,
+          to take into account imprecise analog nature of the joystick.
+          When value goes out of valid range - corresponding axis is
+          centered. The center point calculated on abs-range basis.
+          This property is interpreted as two signed 32 bit values.
+
     required:
       - reg
       - linux,code
@@ -125,3 +139,51 @@ examples:
               abs-flat = <200>;
       };
     };
+  # A rather complex joystick hardware definition
+  # with two axes muxed into one ADC channel.
+  - |
+    #include <dt-bindings/iio/adc/ingenic,adc.h>
+    #include <dt-bindings/input/input.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    gpio_mux: mux-controller {
+      compatible = "gpio-mux";
+      #mux-control-cells = <0>;
+
+      mux-gpios = <&gpe 2 GPIO_ACTIVE_HIGH>;
+    };
+
+    adcmux: adc-mux {
+      compatible = "io-channel-mux";
+      io-channels = <&adc INGENIC_ADC_AUX>;
+      io-channel-names = "parent";
+      #io-channel-cells = <1>;
+
+      mux-controls = <&gpio_mux>;
+
+      channels = "joystick-axis-x", "joystick-axis-y";
+    };
+
+    joystick: joystick {
+      compatible = "adc-joystick";
+      io-channels = <&adcmux 0>, <&adcmux 1>;
+      io-channel-names = "joystick-axis-x", "joystick-axis-y";
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      poll-interval = <16>;
+
+      axis@0 {
+        reg = <0>;
+        linux,code = <ABS_X>;
+        abs-range = <3400 670>;
+        valid-range = <300 3700>;
+      };
+
+      axis@1 {
+        reg = <1>;
+        linux,code = <ABS_Y>;
+        abs-range = <670 3400>;
+        valid-range = <300 3700>;
+      };
+    };
-- 
2.36.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ