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