Commit 04647773 authored by Maxime Ripard's avatar Maxime Ripard Committed by Dmitry Torokhov
Browse files

dt-bindings: input: Convert ChipOne ICN8318 binding to a schema



The ChipOne ICN8318 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.

Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210721140424.725744-17-maxime@cerno.tech


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 5af9f79b
Loading
Loading
Loading
Loading
+62 −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/chipone,icn8318.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ChipOne ICN8318 Touchscreen Controller Device Tree Bindings

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

allOf:
  - $ref: touchscreen.yaml#

properties:
  compatible:
    const: chipone,icn8318

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  wake-gpios:
    maxItems: 1

unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - wake-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 = "chipone,icn8318";
            reg = <0x40>;
            interrupt-parent = <&pio>;
            interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
            pinctrl-names = "default";
            pinctrl-0 = <&ts_wake_pin_p66>;
            wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
            touchscreen-size-x = <800>;
            touchscreen-size-y = <480>;
            touchscreen-inverted-x;
            touchscreen-swapped-x-y;
        };
    };

...
+0 −44
Original line number Diff line number Diff line
* ChipOne icn8318 I2C touchscreen controller

Required properties:
 - compatible		  : "chipone,icn8318"
 - reg			  : I2C slave address of the chip (0x40)
 - interrupts		  : interrupt specification for the icn8318 interrupt
 - wake-gpios		  : GPIO specification for the WAKE input
 - touchscreen-size-x	  : horizontal resolution of touchscreen (in pixels)
 - touchscreen-size-y	  : vertical resolution of touchscreen (in pixels)

Optional properties:
 - pinctrl-names	  : should be "default"
 - pinctrl-0:		  : a phandle pointing to the pin settings for the
			    control gpios
 - touchscreen-fuzz-x	  : horizontal noise value of the absolute input
			    device (in pixels)
 - touchscreen-fuzz-y	  : vertical noise value of the absolute input
			    device (in pixels)
 - touchscreen-inverted-x : X axis is inverted (boolean)
 - touchscreen-inverted-y : Y axis is inverted (boolean)
 - touchscreen-swapped-x-y	  : X and Y axis are swapped (boolean)
			    Swapping is done after inverting the axis

Example:

i2c@00000000 {
	/* ... */

	chipone_icn8318@40 {
		compatible = "chipone,icn8318";
		reg = <0x40>;
		interrupt-parent = <&pio>;
		interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
		pinctrl-names = "default";
		pinctrl-0 = <&ts_wake_pin_p66>;
		wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
		touchscreen-size-x = <800>;
		touchscreen-size-y = <480>;
		touchscreen-inverted-x;
		touchscreen-swapped-x-y;
	};

	/* ... */
};