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