# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/cypress,tm2-touchkey.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung TM2 touch key controller

maintainers:
  - Stephan Gerhold <stephan@gerhold.net>

description: |
  Touch key controllers similar to the TM2 can be found in a wide range of
  Samsung devices. They are implemented using many different MCUs, but use
  a similar I2C protocol.

allOf:
  - $ref: input.yaml#

properties:
  compatible:
    enum:
      - cypress,tm2-touchkey
      - cypress,midas-touchkey
      - cypress,aries-touchkey
      - coreriver,tc360-touchkey

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  vdd-supply:
    description: Optional regulator for LED voltage, 3.3V.

  vcc-supply:
    description: Optional regulator for MCU, 1.8V-3.3V (depending on MCU).

  vddio-supply:
    description: |
      Optional regulator that provides digital I/O voltage,
      e.g. for pulling up the interrupt line or the I2C pins.

  linux,keycodes:
    minItems: 1
    maxItems: 4

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        touchkey@20 {
            compatible = "cypress,tm2-touchkey";
            reg = <0x20>;
            interrupt-parent = <&gpa3>;
            interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
            vcc-supply = <&ldo32_reg>;
            vdd-supply = <&ldo33_reg>;
            linux,keycodes = <KEY_MENU KEY_BACK>;
        };
    };