Documentation / devicetree / bindings / input / iqs62x-keys.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/iqs62x-keys.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Azoteq IQS620A/621/622/624/625 Keys and Switches

maintainers:
  - Jeff LaBundy <jeff@labundy.com>

allOf:
  - $ref: input.yaml#

description: |
  The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
  feature a variety of self-capacitive, mutual-inductive and Hall-effect sens-
  ing capabilities that can facilitate a variety of contactless key and switch
  applications.
 
  These functions are collectively represented by a "keys" child node from the
  parent MFD driver. See Documentation/devicetree/bindings/mfd/iqs62x.yaml for
  further details and examples. Sensor hardware configuration (self-capacitive
  vs. mutual-inductive, etc.) is selected based on the device's firmware.

properties:
  compatible:
    enum:
      - azoteq,iqs620a-keys
      - azoteq,iqs621-keys
      - azoteq,iqs622-keys
      - azoteq,iqs624-keys
      - azoteq,iqs625-keys

  linux,keycodes:
    minItems: 1
    maxItems: 16
    description: |
      Specifies the numeric keycodes associated with each available touch or
      proximity event according to the following table. An 'x' indicates the
      event is supported for a given device. Specify 0 for unused events.
 
      -------------------------------------------------------------------------
      | #  | Event              | IQS620A | IQS621 | IQS622 | IQS624 | IQS625 |
      -------------------------------------------------------------------------
      | 0  | CH0 Touch          |    x    |    x   |    x   |    x   |    x   |
      |    | Antenna 1 Touch*   |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 1  | CH0 Proximity      |    x    |    x   |    x   |    x   |    x   |
      |    | Antenna 1 Prox.*   |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 2  | CH1 Touch          |    x    |    x   |    x   |    x   |    x   |
      |    | Ant. 1 Deep Touch* |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 3  | CH1 Proximity      |    x    |    x   |    x   |    x   |    x   |
      -------------------------------------------------------------------------
      | 4  | CH2 Touch          |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 5  | CH2 Proximity      |    x    |        |        |        |        |
      |    | Antenna 2 Prox.*   |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 6  | Metal (+) Touch**  |    x    |    x   |        |        |        |
      |    | Ant. 2 Deep Touch* |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 7  | Metal (+) Prox.**  |    x    |    x   |        |        |        |
      |    | Antenna 2 Touch*   |    x    |        |        |        |        |
      -------------------------------------------------------------------------
      | 8  | Metal (-) Touch**  |    x    |    x   |        |        |        |
      -------------------------------------------------------------------------
      | 9  | Metal (-) Prox.**  |    x    |    x   |        |        |        |
      -------------------------------------------------------------------------
      | 10 | SAR Active***      |    x    |        |    x   |        |        |
      -------------------------------------------------------------------------
      | 11 | SAR Quick Rel.***  |    x    |        |    x   |        |        |
      -------------------------------------------------------------------------
      | 12 | SAR Movement***    |    x    |        |    x   |        |        |
      -------------------------------------------------------------------------
      | 13 | SAR Filter Halt*** |    x    |        |    x   |        |        |
      -------------------------------------------------------------------------
      | 14 | Wheel Up           |         |        |        |    x   |        |
      -------------------------------------------------------------------------
      | 15 | Wheel Down         |         |        |        |    x   |        |
      -------------------------------------------------------------------------
      *   Two-channel SAR. Replaces CH0-2 plus metal touch and proximity events
          if enabled via firmware.
      **  "+" and "-" refer to the polarity of a channel's delta (LTA - counts),
          where "LTA" is defined as the channel's long-term average.
      *** One-channel SAR. Replaces CH0-2 touch and proximity events if enabled
          via firmware.

patternProperties:
  "^hall-switch-(north|south)$":
    type: object
    $ref: input.yaml#
    description:
      Represents north/south-field Hall-effect sensor touch or proximity
      events. Note that north/south-field orientation is reversed on the
      IQS620AXzCSR device due to its flip-chip package.

    properties:
      linux,code: true

      azoteq,use-prox:
        $ref: /schemas/types.yaml#/definitions/flag
        description:
          If present, specifies that Hall-effect sensor reporting should
          use the device's wide-range proximity threshold instead of its
          close-range touch threshold (default).

    required:
      - linux,code

    additionalProperties: false

if:
  properties:
    compatible:
      contains:
        enum:
          - azoteq,iqs624-keys
          - azoteq,iqs625-keys
then:
  patternProperties:
    "^hall-switch-(north|south)$": false

required:
  - compatible
  - linux,keycodes

additionalProperties: false
 
...