^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/input/iqs62x-keys.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: Azoteq IQS620A/621/622/624/625 Keys and Switches
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Jeff LaBundy <jeff@labundy.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) feature a variety of self-capacitive, mutual-inductive and Hall-effect sens-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) ing capabilities that can facilitate a variety of contactless key and switch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) applications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) These functions are collectively represented by a "keys" child node from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) parent MFD driver. See Documentation/devicetree/bindings/mfd/iqs62x.yaml for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) further details and examples. Sensor hardware configuration (self-capacitive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) vs. mutual-inductive, etc.) is selected based on the device's firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - azoteq,iqs620a-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - azoteq,iqs621-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - azoteq,iqs622-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) - azoteq,iqs624-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - azoteq,iqs625-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) linux,keycodes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) $ref: /schemas/types.yaml#/definitions/uint32-array
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) minItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) maxItems: 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) Specifies the numeric keycodes associated with each available touch or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) proximity event according to the following table. An 'x' indicates the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) event is supported for a given device. Specify 0 for unused events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) | # | Event | IQS620A | IQS621 | IQS622 | IQS624 | IQS625 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) | 0 | CH0 Touch | x | x | x | x | x |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) | | Antenna 1 Touch* | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) | 1 | CH0 Proximity | x | x | x | x | x |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) | | Antenna 1 Prox.* | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) | 2 | CH1 Touch | x | x | x | x | x |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) | | Ant. 1 Deep Touch* | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) | 3 | CH1 Proximity | x | x | x | x | x |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) | 4 | CH2 Touch | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) | 5 | CH2 Proximity | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) | | Antenna 2 Prox.* | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) | 6 | Metal (+) Touch** | x | x | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) | | Ant. 2 Deep Touch* | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) | 7 | Metal (+) Prox.** | x | x | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) | | Antenna 2 Touch* | x | | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) | 8 | Metal (-) Touch** | x | x | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) | 9 | Metal (-) Prox.** | x | x | | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) | 10 | SAR Active*** | x | | x | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) | 11 | SAR Quick Rel.*** | x | | x | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) | 12 | SAR Movement*** | x | | x | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) | 13 | SAR Filter Halt*** | x | | x | | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) | 14 | Wheel Up | | | | x | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) | 15 | Wheel Down | | | | x | |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) -------------------------------------------------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) * Two-channel SAR. Replaces CH0-2 plus metal touch and proximity events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) if enabled via firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) ** "+" and "-" refer to the polarity of a channel's delta (LTA - counts),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) where "LTA" is defined as the channel's long-term average.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) *** One-channel SAR. Replaces CH0-2 touch and proximity events if enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) via firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) "^hall-switch-(north|south)$":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) type: object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) Represents north/south-field Hall-effect sensor touch or proximity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) events. Note that north/south-field orientation is reversed on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) IQS620AXzCSR device due to its flip-chip package.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) linux,code:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) $ref: /schemas/types.yaml#/definitions/uint32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) description: Numeric switch code associated with the event.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) azoteq,use-prox:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) $ref: /schemas/types.yaml#/definitions/flag
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) If present, specifies that Hall-effect sensor reporting should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) use the device's wide-range proximity threshold instead of its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) close-range touch threshold (default).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - linux,code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) - azoteq,iqs624-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) - azoteq,iqs625-keys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) "^hall-switch-(north|south)$": false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) - linux,keycodes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) ...