1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/cypress,tm2-touchkey.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Samsung TM2 touch key controller
8
9maintainers:
10  - Stephan Gerhold <stephan@gerhold.net>
11
12description: |
13  Touch key controllers similar to the TM2 can be found in a wide range of
14  Samsung devices. They are implemented using many different MCUs, but use
15  a similar I2C protocol.
16
17allOf:
18  - $ref: input.yaml#
19
20properties:
21  compatible:
22    enum:
23      - cypress,tm2-touchkey
24      - cypress,midas-touchkey
25      - cypress,aries-touchkey
26      - coreriver,tc360-touchkey
27
28  reg:
29    maxItems: 1
30
31  interrupts:
32    maxItems: 1
33
34  vdd-supply:
35    description: Optional regulator for LED voltage, 3.3V.
36
37  vcc-supply:
38    description: Optional regulator for MCU, 1.8V-3.3V (depending on MCU).
39
40  vddio-supply:
41    description: |
42      Optional regulator that provides digital I/O voltage,
43      e.g. for pulling up the interrupt line or the I2C pins.
44
45  linux,keycodes:
46    minItems: 1
47    maxItems: 4
48
49required:
50  - compatible
51  - reg
52  - interrupts
53
54additionalProperties: false
55
56examples:
57  - |
58    #include <dt-bindings/input/input.h>
59    #include <dt-bindings/interrupt-controller/irq.h>
60    i2c {
61        #address-cells = <1>;
62        #size-cells = <0>;
63
64        touchkey@20 {
65            compatible = "cypress,tm2-touchkey";
66            reg = <0x20>;
67            interrupt-parent = <&gpa3>;
68            interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
69            vcc-supply = <&ldo32_reg>;
70            vdd-supply = <&ldo33_reg>;
71            linux,keycodes = <KEY_MENU KEY_BACK>;
72        };
73    };
74