Commit e8a3d847 authored by Maxime Ripard's avatar Maxime Ripard Committed by Rob Herring
Browse files

dt-bindings: input: Convert Silead GSL1680 binding to a schema



The Silead GSL1680 Touchscreen Controller is supported by Linux thanks
to its device tree binding.

Now that we have the DT validation in place, let's convert the device
tree bindings for that driver over to a YAML schema.

Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20211015073006.8939-1-maxime@cerno.tech


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 05ef72e3
Loading
Loading
Loading
Loading
+91 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/touchscreen/silead,gsl1680.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Silead GSL1680 Touchscreen Controller Device Tree Bindings

maintainers:
  - Dmitry Torokhov <dmitry.torokhov@gmail.com>

allOf:
  - $ref: touchscreen.yaml#

properties:
  compatible:
    enum:
      - silead,gsl1680
      - silead,gsl1688
      - silead,gsl3670
      - silead,gsl3675
      - silead,gsl3692

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  power-gpios:
    maxItems: 1

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description: >
      File basename for board specific firmware

  silead,max-fingers:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 5
    description: >
      Maximum number of fingers the touchscreen can detect

  silead,home-button:
    type: boolean
    description: >
      Does the device have a capacitive home-button build into the
      touchscreen?

  avdd-supply:
    description: >
      Regulator phandle for controller AVDD

  vddio-supply:
    description: >
      Regulator phandle for controller VDDIO

unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - power-gpios
  - touchscreen-size-x
  - touchscreen-size-y

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

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

        touchscreen@40 {
            compatible = "silead,gsl1680";
            reg = <0x40>;
            interrupt-parent = <&pio>;
            interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>;
            power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
            touchscreen-size-x = <480>;
            touchscreen-size-y = <800>;
            touchscreen-inverted-x;
            touchscreen-swapped-x-y;
            silead,max-fingers = <5>;
        };
    };

...
+0 −44
Original line number Diff line number Diff line
* GSL 1680 touchscreen controller

Required properties:
- compatible		  : Must be one of the following, depending on the model:
			    "silead,gsl1680"
			    "silead,gsl1688"
			    "silead,gsl3670"
			    "silead,gsl3675"
			    "silead,gsl3692"
- reg			  : I2C slave address of the chip (0x40)
- interrupts		  : interrupt specification for the gsl1680 interrupt
- power-gpios		  : Specification for the pin connected to the gsl1680's
			    shutdown input. This needs to be driven high to take the
			    gsl1680 out of its low power state
- touchscreen-size-x	  : See touchscreen.txt
- touchscreen-size-y	  : See touchscreen.txt

Optional properties:
- firmware-name		  : File basename (string) for board specific firmware
- touchscreen-inverted-x  : See touchscreen.txt
- touchscreen-inverted-y  : See touchscreen.txt
- touchscreen-swapped-x-y : See touchscreen.txt
- silead,max-fingers	  : maximum number of fingers the touchscreen can detect
- silead,home-button	  : Boolean, set to true on devices which have a
			    capacitive home-button build into the touchscreen
- vddio-supply		  : regulator phandle for controller VDDIO
- avdd-supply		  : regulator phandle for controller AVDD

Example:

i2c@00000000 {
	gsl1680: touchscreen@40 {
		compatible = "silead,gsl1680";
		reg = <0x40>;
		interrupt-parent = <&pio>;
		interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>;
		power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
		touchscreen-size-x = <480>;
		touchscreen-size-y = <800>;
		touchscreen-inverted-x;
		touchscreen-swapped-x-y;
		silead,max-fingers = <5>;
	};
};