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 pwmleds { 94 compatible = "pwm-leds"; 95 96 led-1 { 97 pwms = <&iqs620a_pwm 0 1000000>; 98 max-brightness = <255>; 99 }; 100 }; 101 102 - | 103 /* Single inductive button with bipolar dock/tablet-mode switch. */ 104 #include <dt-bindings/input/input.h> 105 #include <dt-bindings/interrupt-controller/irq.h> 106 107 i2c { 108 #address-cells = <1>; 109 #size-cells = <0>; 110 111 iqs620a@44 { 112 compatible = "azoteq,iqs620a"; 113 reg = <0x44>; 114 interrupt-parent = <&gpio>; 115 interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 116 117 firmware-name = "iqs620a_coil.bin"; 118 119 keys { 120 compatible = "azoteq,iqs620a-keys"; 121 122 linux,keycodes = <0>, 123 <0>, 124 <0>, 125 <0>, 126 <0>, 127 <0>, 128 <KEY_MUTE>; 129 130 hall-switch-north { 131 linux,code = <SW_DOCK>; 132 }; 133 134 hall-switch-south { 135 linux,code = <SW_TABLET_MODE>; 136 }; 137 }; 138 }; 139 }; 140 141 - | 142 /* Dual capacitive buttons with volume knob. */ 143 #include <dt-bindings/input/input.h> 144 #include <dt-bindings/interrupt-controller/irq.h> 145 146 i2c { 147 #address-cells = <1>; 148 #size-cells = <0>; 149 150 iqs624@44 { 151 compatible = "azoteq,iqs624"; 152 reg = <0x44>; 153 interrupt-parent = <&gpio>; 154 interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 155 156 keys { 157 compatible = "azoteq,iqs624-keys"; 158 159 linux,keycodes = <BTN_0>, 160 <0>, 161 <BTN_1>, 162 <0>, 163 <0>, 164 <0>, 165 <0>, 166 <0>, 167 <0>, 168 <0>, 169 <0>, 170 <0>, 171 <0>, 172 <0>, 173 <KEY_VOLUMEUP>, 174 <KEY_VOLUMEDOWN>; 175 }; 176 }; 177 }; 178 179... 180