180 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---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 Sensors8 9maintainers:10 - Jeff LaBundy <jeff@labundy.com>11 12description: |13 The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors14 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,iqs620a22 - azoteq,iqs62123 - azoteq,iqs62224 - azoteq,iqs62425 - azoteq,iqs62526 27 reg:28 maxItems: 129 30 interrupts:31 maxItems: 132 33 firmware-name:34 maxItems: 135 description:36 Specifies the name of the calibration and configuration file selected by37 the driver. If this property is omitted, the name is chosen based on the38 device name with ".bin" as the extension (e.g. iqs620a.bin for IQS620A).39 40 keys:41 $ref: /schemas/input/iqs62x-keys.yaml42 43 pwm:44 $ref: /schemas/pwm/iqs620a-pwm.yaml45 46required:47 - compatible48 - reg49 - interrupts50 51additionalProperties: false52 53examples:54 - |55 /*56 * Dual capacitive buttons with proximity-activated function, unipolar lid57 * 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