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

title: Goodix GT7375P touchscreen

maintainers:
  - Douglas Anderson <dianders@chromium.org>

description:
  Supports the Goodix GT7375P touchscreen.
  This touchscreen uses the i2c-hid protocol but has some non-standard
  power sequencing required.

allOf:
  - $ref: /schemas/input/touchscreen/touchscreen.yaml#

properties:
  compatible:
    oneOf:
      - const: goodix,gt7375p
      - items:
          - const: goodix,gt7986u
          - const: goodix,gt7375p

  reg:
    enum:
      - 0x5d
      - 0x14

  interrupts:
    maxItems: 1

  panel: true

  reset-gpios:
    true

  vdd-supply:
    description: The 3.3V supply to the touchscreen.

  mainboard-vddio-supply:
    description:
      The supply on the main board needed to power up IO signals going
      to the touchscreen. This supply need not go to the touchscreen
      itself as long as it allows the main board to make signals compatible
      with what the touchscreen is expecting for its IO rails.

  goodix,no-reset-during-suspend:
    description:
      Set this to true to enforce the driver to not assert the reset GPIO
      during suspend.
      Due to potential touchscreen hardware flaw, back-powering could happen in
      suspend if the power supply is on and with active-low reset GPIO asserted.
      This property is used to avoid the back-powering issue.
    type: boolean

required:
  - compatible
  - reg
  - interrupts
  - reset-gpios
  - vdd-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,rpmh.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      ap_ts: touchscreen@5d {
        compatible = "goodix,gt7375p";
        reg = <0x5d>;

        interrupt-parent = <&tlmm>;
        interrupts = <9 IRQ_TYPE_LEVEL_LOW>;

        reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
        vdd-supply = <&pp3300_ts>;
      };
    };
