Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/input/iqs62x-keys.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Azoteq IQS620A/621/622/624/625 Keys and Switches
0008 
0009 maintainers:
0010   - Jeff LaBundy <jeff@labundy.com>
0011 
0012 allOf:
0013   - $ref: input.yaml#
0014 
0015 description: |
0016   The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
0017   feature a variety of self-capacitive, mutual-inductive and Hall-effect sens-
0018   ing capabilities that can facilitate a variety of contactless key and switch
0019   applications.
0020 
0021   These functions are collectively represented by a "keys" child node from the
0022   parent MFD driver. See Documentation/devicetree/bindings/mfd/iqs62x.yaml for
0023   further details and examples. Sensor hardware configuration (self-capacitive
0024   vs. mutual-inductive, etc.) is selected based on the device's firmware.
0025 
0026 properties:
0027   compatible:
0028     enum:
0029       - azoteq,iqs620a-keys
0030       - azoteq,iqs621-keys
0031       - azoteq,iqs622-keys
0032       - azoteq,iqs624-keys
0033       - azoteq,iqs625-keys
0034 
0035   linux,keycodes:
0036     minItems: 1
0037     maxItems: 16
0038     description: |
0039       Specifies the numeric keycodes associated with each available touch or
0040       proximity event according to the following table. An 'x' indicates the
0041       event is supported for a given device. Specify 0 for unused events.
0042 
0043       -------------------------------------------------------------------------
0044       | #  | Event              | IQS620A | IQS621 | IQS622 | IQS624 | IQS625 |
0045       -------------------------------------------------------------------------
0046       | 0  | CH0 Touch          |    x    |    x   |    x   |    x   |    x   |
0047       |    | Antenna 1 Touch*   |    x    |        |        |        |        |
0048       -------------------------------------------------------------------------
0049       | 1  | CH0 Proximity      |    x    |    x   |    x   |    x   |    x   |
0050       |    | Antenna 1 Prox.*   |    x    |        |        |        |        |
0051       -------------------------------------------------------------------------
0052       | 2  | CH1 Touch          |    x    |    x   |    x   |    x   |    x   |
0053       |    | Ant. 1 Deep Touch* |    x    |        |        |        |        |
0054       -------------------------------------------------------------------------
0055       | 3  | CH1 Proximity      |    x    |    x   |    x   |    x   |    x   |
0056       -------------------------------------------------------------------------
0057       | 4  | CH2 Touch          |    x    |        |        |        |        |
0058       -------------------------------------------------------------------------
0059       | 5  | CH2 Proximity      |    x    |        |        |        |        |
0060       |    | Antenna 2 Prox.*   |    x    |        |        |        |        |
0061       -------------------------------------------------------------------------
0062       | 6  | Metal (+) Touch**  |    x    |    x   |        |        |        |
0063       |    | Ant. 2 Deep Touch* |    x    |        |        |        |        |
0064       -------------------------------------------------------------------------
0065       | 7  | Metal (+) Prox.**  |    x    |    x   |        |        |        |
0066       |    | Antenna 2 Touch*   |    x    |        |        |        |        |
0067       -------------------------------------------------------------------------
0068       | 8  | Metal (-) Touch**  |    x    |    x   |        |        |        |
0069       -------------------------------------------------------------------------
0070       | 9  | Metal (-) Prox.**  |    x    |    x   |        |        |        |
0071       -------------------------------------------------------------------------
0072       | 10 | SAR Active***      |    x    |        |    x   |        |        |
0073       -------------------------------------------------------------------------
0074       | 11 | SAR Quick Rel.***  |    x    |        |    x   |        |        |
0075       -------------------------------------------------------------------------
0076       | 12 | SAR Movement***    |    x    |        |    x   |        |        |
0077       -------------------------------------------------------------------------
0078       | 13 | SAR Filter Halt*** |    x    |        |    x   |        |        |
0079       -------------------------------------------------------------------------
0080       | 14 | Wheel Up           |         |        |        |    x   |        |
0081       -------------------------------------------------------------------------
0082       | 15 | Wheel Down         |         |        |        |    x   |        |
0083       -------------------------------------------------------------------------
0084       *   Two-channel SAR. Replaces CH0-2 plus metal touch and proximity events
0085           if enabled via firmware.
0086       **  "+" and "-" refer to the polarity of a channel's delta (LTA - counts),
0087           where "LTA" is defined as the channel's long-term average.
0088       *** One-channel SAR. Replaces CH0-2 touch and proximity events if enabled
0089           via firmware.
0090 
0091 patternProperties:
0092   "^hall-switch-(north|south)$":
0093     type: object
0094     $ref: input.yaml#
0095     description:
0096       Represents north/south-field Hall-effect sensor touch or proximity
0097       events. Note that north/south-field orientation is reversed on the
0098       IQS620AXzCSR device due to its flip-chip package.
0099 
0100     properties:
0101       linux,code: true
0102 
0103       azoteq,use-prox:
0104         $ref: /schemas/types.yaml#/definitions/flag
0105         description:
0106           If present, specifies that Hall-effect sensor reporting should
0107           use the device's wide-range proximity threshold instead of its
0108           close-range touch threshold (default).
0109 
0110     required:
0111       - linux,code
0112 
0113     additionalProperties: false
0114 
0115 if:
0116   properties:
0117     compatible:
0118       contains:
0119         enum:
0120           - azoteq,iqs624-keys
0121           - azoteq,iqs625-keys
0122 then:
0123   patternProperties:
0124     "^hall-switch-(north|south)$": false
0125 
0126 required:
0127   - compatible
0128   - linux,keycodes
0129 
0130 additionalProperties: false
0131 
0132 ...