18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/input/fsl,mpr121-touchkey.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Freescale MPR121 capacitive touch sensor controller
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Dmitry Torokhov <dmitry.torokhov@gmail.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The MPR121 supports up to 12 completely independent electrodes/capacitance
148c2ecf20Sopenharmony_ci  sensing inputs in which 8 are multifunctional for LED driving and GPIO.
158c2ecf20Sopenharmony_ci  https://www.nxp.com/docs/en/data-sheet/MPR121.pdf
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciallOf:
188c2ecf20Sopenharmony_ci  - $ref: input.yaml#
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cianyOf:
218c2ecf20Sopenharmony_ci  - required: [ interrupts ]
228c2ecf20Sopenharmony_ci  - required: [ poll-interval ]
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciproperties:
258c2ecf20Sopenharmony_ci  compatible:
268c2ecf20Sopenharmony_ci    const: fsl,mpr121-touchkey
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  reg:
298c2ecf20Sopenharmony_ci    maxItems: 1
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  interrupts:
328c2ecf20Sopenharmony_ci    maxItems: 1
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  vdd-supply:
358c2ecf20Sopenharmony_ci    maxItems: 1
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  linux,keycodes:
388c2ecf20Sopenharmony_ci    minItems: 1
398c2ecf20Sopenharmony_ci    maxItems: 12
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci  wakeup-source:
428c2ecf20Sopenharmony_ci    description: Use any event on keypad as wakeup event.
438c2ecf20Sopenharmony_ci    type: boolean
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_cirequired:
468c2ecf20Sopenharmony_ci  - compatible
478c2ecf20Sopenharmony_ci  - reg
488c2ecf20Sopenharmony_ci  - vdd-supply
498c2ecf20Sopenharmony_ci  - linux,keycodes
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciunevaluatedProperties: false
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciexamples:
548c2ecf20Sopenharmony_ci  - |
558c2ecf20Sopenharmony_ci    // Example with interrupts
568c2ecf20Sopenharmony_ci    #include "dt-bindings/input/input.h"
578c2ecf20Sopenharmony_ci    i2c {
588c2ecf20Sopenharmony_ci        #address-cells = <1>;
598c2ecf20Sopenharmony_ci        #size-cells = <0>;
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci        mpr121@5a {
628c2ecf20Sopenharmony_ci            compatible = "fsl,mpr121-touchkey";
638c2ecf20Sopenharmony_ci            reg = <0x5a>;
648c2ecf20Sopenharmony_ci            interrupt-parent = <&gpio1>;
658c2ecf20Sopenharmony_ci            interrupts = <28 2>;
668c2ecf20Sopenharmony_ci            autorepeat;
678c2ecf20Sopenharmony_ci            vdd-supply = <&ldo4_reg>;
688c2ecf20Sopenharmony_ci            linux,keycodes = <KEY_0>, <KEY_1>, <KEY_2>, <KEY_3>,
698c2ecf20Sopenharmony_ci                             <KEY_4>, <KEY_5>, <KEY_6>, <KEY_7>,
708c2ecf20Sopenharmony_ci                             <KEY_8>, <KEY_9>, <KEY_A>, <KEY_B>;
718c2ecf20Sopenharmony_ci        };
728c2ecf20Sopenharmony_ci    };
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci  - |
758c2ecf20Sopenharmony_ci    // Example with polling
768c2ecf20Sopenharmony_ci    #include "dt-bindings/input/input.h"
778c2ecf20Sopenharmony_ci    i2c {
788c2ecf20Sopenharmony_ci        #address-cells = <1>;
798c2ecf20Sopenharmony_ci        #size-cells = <0>;
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci        mpr121@5a {
828c2ecf20Sopenharmony_ci            compatible = "fsl,mpr121-touchkey";
838c2ecf20Sopenharmony_ci            reg = <0x5a>;
848c2ecf20Sopenharmony_ci            poll-interval = <20>;
858c2ecf20Sopenharmony_ci            autorepeat;
868c2ecf20Sopenharmony_ci            vdd-supply = <&ldo4_reg>;
878c2ecf20Sopenharmony_ci            linux,keycodes = <KEY_0>, <KEY_1>, <KEY_2>, <KEY_3>,
888c2ecf20Sopenharmony_ci                             <KEY_4>, <KEY_5>, <KEY_6>, <KEY_7>,
898c2ecf20Sopenharmony_ci                             <KEY_8>, <KEY_9>, <KEY_A>, <KEY_B>;
908c2ecf20Sopenharmony_ci        };
918c2ecf20Sopenharmony_ci    };
92