1d8a3c488SJeff LaBundy# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2d8a3c488SJeff LaBundy%YAML 1.2 3d8a3c488SJeff LaBundy--- 4d8a3c488SJeff LaBundy$id: http://devicetree.org/schemas/mfd/iqs62x.yaml# 5d8a3c488SJeff LaBundy$schema: http://devicetree.org/meta-schemas/core.yaml# 6d8a3c488SJeff LaBundy 7d8a3c488SJeff LaBundytitle: Azoteq IQS620A/621/622/624/625 Multi-Function Sensors 8d8a3c488SJeff LaBundy 9d8a3c488SJeff LaBundymaintainers: 10d8a3c488SJeff LaBundy - Jeff LaBundy <jeff@labundy.com> 11d8a3c488SJeff LaBundy 12d8a3c488SJeff LaBundydescription: | 13d8a3c488SJeff LaBundy The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors 14d8a3c488SJeff LaBundy integrate multiple sensing technologies in a single package. 15d8a3c488SJeff LaBundy 16d8a3c488SJeff LaBundy Link to datasheets: https://www.azoteq.com/ 17d8a3c488SJeff LaBundy 18d8a3c488SJeff LaBundyproperties: 19d8a3c488SJeff LaBundy compatible: 20d8a3c488SJeff LaBundy enum: 21d8a3c488SJeff LaBundy - azoteq,iqs620a 22d8a3c488SJeff LaBundy - azoteq,iqs621 23d8a3c488SJeff LaBundy - azoteq,iqs622 24d8a3c488SJeff LaBundy - azoteq,iqs624 25d8a3c488SJeff LaBundy - azoteq,iqs625 26d8a3c488SJeff LaBundy 27d8a3c488SJeff LaBundy reg: 28d8a3c488SJeff LaBundy maxItems: 1 29d8a3c488SJeff LaBundy 30d8a3c488SJeff LaBundy interrupts: 31d8a3c488SJeff LaBundy maxItems: 1 32d8a3c488SJeff LaBundy 33d8a3c488SJeff LaBundy firmware-name: 34d8a3c488SJeff LaBundy $ref: /schemas/types.yaml#/definitions/string 35d8a3c488SJeff LaBundy description: 36d8a3c488SJeff LaBundy Specifies the name of the calibration and configuration file selected by 37d8a3c488SJeff LaBundy the driver. If this property is omitted, the name is chosen based on the 38d8a3c488SJeff LaBundy device name with ".bin" as the extension (e.g. iqs620a.bin for IQS620A). 39d8a3c488SJeff LaBundy 40d8a3c488SJeff LaBundy keys: 41d8a3c488SJeff LaBundy $ref: ../input/iqs62x-keys.yaml 42d8a3c488SJeff LaBundy 43d8a3c488SJeff LaBundy pwm: 44d8a3c488SJeff LaBundy $ref: ../pwm/iqs620a-pwm.yaml 45d8a3c488SJeff LaBundy 46d8a3c488SJeff LaBundyrequired: 47d8a3c488SJeff LaBundy - compatible 48d8a3c488SJeff LaBundy - reg 49d8a3c488SJeff LaBundy - interrupts 50d8a3c488SJeff LaBundy 51d8a3c488SJeff LaBundyadditionalProperties: false 52d8a3c488SJeff LaBundy 53d8a3c488SJeff LaBundyexamples: 54d8a3c488SJeff LaBundy - | 55d8a3c488SJeff LaBundy /* 56d8a3c488SJeff LaBundy * Dual capacitive buttons with proximity-activated function, unipolar lid 57d8a3c488SJeff LaBundy * switch and panel-mounted LED. 58d8a3c488SJeff LaBundy */ 59d8a3c488SJeff LaBundy #include <dt-bindings/input/input.h> 60d8a3c488SJeff LaBundy #include <dt-bindings/interrupt-controller/irq.h> 61d8a3c488SJeff LaBundy 62d8a3c488SJeff LaBundy i2c { 63d8a3c488SJeff LaBundy #address-cells = <1>; 64d8a3c488SJeff LaBundy #size-cells = <0>; 65d8a3c488SJeff LaBundy 66d8a3c488SJeff LaBundy iqs620a@44 { 67d8a3c488SJeff LaBundy compatible = "azoteq,iqs620a"; 68d8a3c488SJeff LaBundy reg = <0x44>; 69d8a3c488SJeff LaBundy interrupt-parent = <&gpio>; 70d8a3c488SJeff LaBundy interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 71d8a3c488SJeff LaBundy 72d8a3c488SJeff LaBundy keys { 73d8a3c488SJeff LaBundy compatible = "azoteq,iqs620a-keys"; 74d8a3c488SJeff LaBundy 75d8a3c488SJeff LaBundy linux,keycodes = <KEY_SELECT>, 76d8a3c488SJeff LaBundy <KEY_MENU>, 77d8a3c488SJeff LaBundy <KEY_OK>, 78d8a3c488SJeff LaBundy <KEY_MENU>; 79d8a3c488SJeff LaBundy 80d8a3c488SJeff LaBundy hall-switch-south { 81d8a3c488SJeff LaBundy linux,code = <SW_LID>; 82d8a3c488SJeff LaBundy azoteq,use-prox; 83d8a3c488SJeff LaBundy }; 84d8a3c488SJeff LaBundy }; 85d8a3c488SJeff LaBundy 86d8a3c488SJeff LaBundy iqs620a_pwm: pwm { 87d8a3c488SJeff LaBundy compatible = "azoteq,iqs620a-pwm"; 88d8a3c488SJeff LaBundy #pwm-cells = <2>; 89d8a3c488SJeff LaBundy }; 90d8a3c488SJeff LaBundy }; 91d8a3c488SJeff LaBundy }; 92d8a3c488SJeff LaBundy 93d8a3c488SJeff LaBundy pwmleds { 94d8a3c488SJeff LaBundy compatible = "pwm-leds"; 95d8a3c488SJeff LaBundy 96*951e92d1SZhen Lei led-1 { 97d8a3c488SJeff LaBundy pwms = <&iqs620a_pwm 0 1000000>; 98d8a3c488SJeff LaBundy max-brightness = <255>; 99d8a3c488SJeff LaBundy }; 100d8a3c488SJeff LaBundy }; 101d8a3c488SJeff LaBundy 102d8a3c488SJeff LaBundy - | 103d8a3c488SJeff LaBundy /* Single inductive button with bipolar dock/tablet-mode switch. */ 104d8a3c488SJeff LaBundy #include <dt-bindings/input/input.h> 105d8a3c488SJeff LaBundy #include <dt-bindings/interrupt-controller/irq.h> 106d8a3c488SJeff LaBundy 107d8a3c488SJeff LaBundy i2c { 108d8a3c488SJeff LaBundy #address-cells = <1>; 109d8a3c488SJeff LaBundy #size-cells = <0>; 110d8a3c488SJeff LaBundy 111d8a3c488SJeff LaBundy iqs620a@44 { 112d8a3c488SJeff LaBundy compatible = "azoteq,iqs620a"; 113d8a3c488SJeff LaBundy reg = <0x44>; 114d8a3c488SJeff LaBundy interrupt-parent = <&gpio>; 115d8a3c488SJeff LaBundy interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 116d8a3c488SJeff LaBundy 117d8a3c488SJeff LaBundy firmware-name = "iqs620a_coil.bin"; 118d8a3c488SJeff LaBundy 119d8a3c488SJeff LaBundy keys { 120d8a3c488SJeff LaBundy compatible = "azoteq,iqs620a-keys"; 121d8a3c488SJeff LaBundy 122d8a3c488SJeff LaBundy linux,keycodes = <0>, 123d8a3c488SJeff LaBundy <0>, 124d8a3c488SJeff LaBundy <0>, 125d8a3c488SJeff LaBundy <0>, 126d8a3c488SJeff LaBundy <0>, 127d8a3c488SJeff LaBundy <0>, 128d8a3c488SJeff LaBundy <KEY_MUTE>; 129d8a3c488SJeff LaBundy 130d8a3c488SJeff LaBundy hall-switch-north { 131d8a3c488SJeff LaBundy linux,code = <SW_DOCK>; 132d8a3c488SJeff LaBundy }; 133d8a3c488SJeff LaBundy 134d8a3c488SJeff LaBundy hall-switch-south { 135d8a3c488SJeff LaBundy linux,code = <SW_TABLET_MODE>; 136d8a3c488SJeff LaBundy }; 137d8a3c488SJeff LaBundy }; 138d8a3c488SJeff LaBundy }; 139d8a3c488SJeff LaBundy }; 140d8a3c488SJeff LaBundy 141d8a3c488SJeff LaBundy - | 142d8a3c488SJeff LaBundy /* Dual capacitive buttons with volume knob. */ 143d8a3c488SJeff LaBundy #include <dt-bindings/input/input.h> 144d8a3c488SJeff LaBundy #include <dt-bindings/interrupt-controller/irq.h> 145d8a3c488SJeff LaBundy 146d8a3c488SJeff LaBundy i2c { 147d8a3c488SJeff LaBundy #address-cells = <1>; 148d8a3c488SJeff LaBundy #size-cells = <0>; 149d8a3c488SJeff LaBundy 150d8a3c488SJeff LaBundy iqs624@44 { 151d8a3c488SJeff LaBundy compatible = "azoteq,iqs624"; 152d8a3c488SJeff LaBundy reg = <0x44>; 153d8a3c488SJeff LaBundy interrupt-parent = <&gpio>; 154d8a3c488SJeff LaBundy interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 155d8a3c488SJeff LaBundy 156d8a3c488SJeff LaBundy keys { 157d8a3c488SJeff LaBundy compatible = "azoteq,iqs624-keys"; 158d8a3c488SJeff LaBundy 159d8a3c488SJeff LaBundy linux,keycodes = <BTN_0>, 160d8a3c488SJeff LaBundy <0>, 161d8a3c488SJeff LaBundy <BTN_1>, 162d8a3c488SJeff LaBundy <0>, 163d8a3c488SJeff LaBundy <0>, 164d8a3c488SJeff LaBundy <0>, 165d8a3c488SJeff LaBundy <0>, 166d8a3c488SJeff LaBundy <0>, 167d8a3c488SJeff LaBundy <0>, 168d8a3c488SJeff LaBundy <0>, 169d8a3c488SJeff LaBundy <0>, 170d8a3c488SJeff LaBundy <0>, 171d8a3c488SJeff LaBundy <0>, 172d8a3c488SJeff LaBundy <0>, 173d8a3c488SJeff LaBundy <KEY_VOLUMEUP>, 174d8a3c488SJeff LaBundy <KEY_VOLUMEDOWN>; 175d8a3c488SJeff LaBundy }; 176d8a3c488SJeff LaBundy }; 177d8a3c488SJeff LaBundy }; 178d8a3c488SJeff LaBundy 179d8a3c488SJeff LaBundy... 180