1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/input/fsl,mpr121-touchkey.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Freescale MPR121 capacitive touch sensor controller
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Dmitry Torokhov <dmitry.torokhov@gmail.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The MPR121 supports up to 12 completely independent electrodes/capacitance
14c66ec88fSEmmanuel Vadot  sensing inputs in which 8 are multifunctional for LED driving and GPIO.
15c66ec88fSEmmanuel Vadot  https://www.nxp.com/docs/en/data-sheet/MPR121.pdf
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel VadotallOf:
18c66ec88fSEmmanuel Vadot  - $ref: input.yaml#
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel VadotanyOf:
21c66ec88fSEmmanuel Vadot  - required: [ interrupts ]
22c66ec88fSEmmanuel Vadot  - required: [ poll-interval ]
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadotproperties:
25c66ec88fSEmmanuel Vadot  compatible:
26c66ec88fSEmmanuel Vadot    const: fsl,mpr121-touchkey
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  reg:
29c66ec88fSEmmanuel Vadot    maxItems: 1
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot  interrupts:
32c66ec88fSEmmanuel Vadot    maxItems: 1
33c66ec88fSEmmanuel Vadot
345def4c47SEmmanuel Vadot  vdd-supply: true
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  linux,keycodes:
37c66ec88fSEmmanuel Vadot    minItems: 1
38c66ec88fSEmmanuel Vadot    maxItems: 12
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadot  wakeup-source:
41c66ec88fSEmmanuel Vadot    description: Use any event on keypad as wakeup event.
42c66ec88fSEmmanuel Vadot    type: boolean
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadotrequired:
45c66ec88fSEmmanuel Vadot  - compatible
46c66ec88fSEmmanuel Vadot  - reg
47c66ec88fSEmmanuel Vadot  - vdd-supply
48c66ec88fSEmmanuel Vadot  - linux,keycodes
49c66ec88fSEmmanuel Vadot
506be33864SEmmanuel VadotunevaluatedProperties: false
516be33864SEmmanuel Vadot
52c66ec88fSEmmanuel Vadotexamples:
53c66ec88fSEmmanuel Vadot  - |
54c66ec88fSEmmanuel Vadot    // Example with interrupts
55c66ec88fSEmmanuel Vadot    #include "dt-bindings/input/input.h"
56c66ec88fSEmmanuel Vadot    i2c {
57c66ec88fSEmmanuel Vadot        #address-cells = <1>;
58c66ec88fSEmmanuel Vadot        #size-cells = <0>;
59c66ec88fSEmmanuel Vadot
60*b97ee269SEmmanuel Vadot        touchkey@5a {
61c66ec88fSEmmanuel Vadot            compatible = "fsl,mpr121-touchkey";
62c66ec88fSEmmanuel Vadot            reg = <0x5a>;
63c66ec88fSEmmanuel Vadot            interrupt-parent = <&gpio1>;
64c66ec88fSEmmanuel Vadot            interrupts = <28 2>;
65c66ec88fSEmmanuel Vadot            autorepeat;
66c66ec88fSEmmanuel Vadot            vdd-supply = <&ldo4_reg>;
67c66ec88fSEmmanuel Vadot            linux,keycodes = <KEY_0>, <KEY_1>, <KEY_2>, <KEY_3>,
68c66ec88fSEmmanuel Vadot                             <KEY_4>, <KEY_5>, <KEY_6>, <KEY_7>,
69c66ec88fSEmmanuel Vadot                             <KEY_8>, <KEY_9>, <KEY_A>, <KEY_B>;
70c66ec88fSEmmanuel Vadot        };
71c66ec88fSEmmanuel Vadot    };
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  - |
74c66ec88fSEmmanuel Vadot    // Example with polling
75c66ec88fSEmmanuel Vadot    #include "dt-bindings/input/input.h"
76c66ec88fSEmmanuel Vadot    i2c {
77c66ec88fSEmmanuel Vadot        #address-cells = <1>;
78c66ec88fSEmmanuel Vadot        #size-cells = <0>;
79c66ec88fSEmmanuel Vadot
80*b97ee269SEmmanuel Vadot        touchkey@5a {
81c66ec88fSEmmanuel Vadot            compatible = "fsl,mpr121-touchkey";
82c66ec88fSEmmanuel Vadot            reg = <0x5a>;
83c66ec88fSEmmanuel Vadot            poll-interval = <20>;
84c66ec88fSEmmanuel Vadot            autorepeat;
85c66ec88fSEmmanuel Vadot            vdd-supply = <&ldo4_reg>;
86c66ec88fSEmmanuel Vadot            linux,keycodes = <KEY_0>, <KEY_1>, <KEY_2>, <KEY_3>,
87c66ec88fSEmmanuel Vadot                             <KEY_4>, <KEY_5>, <KEY_6>, <KEY_7>,
88c66ec88fSEmmanuel Vadot                             <KEY_8>, <KEY_9>, <KEY_A>, <KEY_B>;
89c66ec88fSEmmanuel Vadot        };
90c66ec88fSEmmanuel Vadot    };
91