Commit fdbb8025 authored by Linus Walleij's avatar Linus Walleij Committed by Dmitry Torokhov
Browse files

dt-bindings: input/ts/zinitix: Convert to YAML, fix and extend



This converts the Zinitix BT4xx and BT5xx touchscreen bindings to YAML,
fix them up a bit and extends them.

We list all the existing BT4xx and BT5xx components with compatible
strings.  These are all similar, use the same bindings and work in
similar ways.

We rename the supplies from the erroneous vdd/vddo to the actual supply
names vcca/vdd as specified on the actual component. It is long
established that supplies shall be named after the supply pin names of a
component.  The confusion probably stems from that in a certain product
the rails to the component were named vdd/vddo. Drop some notes on how OS
implementations should avoid confusion by first looking for vddo, and if
that exists assume the legacy binding pair and otherwise use vcca/vdd.

Add reset-gpios as sometimes manufacturers pulls a GPIO line to the reset
line on the chip.

Add optional touchscreen-fuzz-x and touchscreen-fuzz-y properties.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
[Fixed dt_schema_check]
Signed-off-by: default avatarNikita Travkin <nikita@trvn.ru>
Link: https://lore.kernel.org/r/20220106072840.36851-3-nikita@trvn.ru


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 8a78050e
Loading
Loading
Loading
Loading
+115 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/touchscreen/zinitix,bt400.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Zinitix BT4xx and BT5xx series touchscreen controller bindings

description: The Zinitix BT4xx and BT5xx series of touchscreen controllers
  are Korea-produced touchscreens with embedded microcontrollers. The
  BT4xx series was produced 2010-2013 and the BT5xx series 2013-2014.

maintainers:
  - Michael Srba <Michael.Srba@seznam.cz>
  - Linus Walleij <linus.walleij@linaro.org>

allOf:
  - $ref: touchscreen.yaml#

properties:
  $nodename:
    pattern: "^touchscreen(@.*)?$"

  compatible:
    enum:
      - zinitix,bt402
      - zinitix,bt403
      - zinitix,bt404
      - zinitix,bt412
      - zinitix,bt413
      - zinitix,bt431
      - zinitix,bt432
      - zinitix,bt531
      - zinitix,bt532
      - zinitix,bt538
      - zinitix,bt541
      - zinitix,bt548
      - zinitix,bt554
      - zinitix,at100

  reg:
    description: I2C address on the I2C bus

  clock-frequency:
    description: I2C client clock frequency, defined for host when using
      the device on the I2C bus
    minimum: 0
    maximum: 400000

  interrupts:
    description: Interrupt to host
    maxItems: 1

  vcca-supply:
    description: Analog power supply regulator on the VCCA pin

  vdd-supply:
    description: Digital power supply regulator on the VDD pin.
      In older device trees this can be the accidental name for the analog
      supply on the VCCA pin, and in that case the deprecated vddo-supply is
      used for the digital power supply.

  vddo-supply:
    description: Deprecated name for the digital power supply, use vdd-supply
      as this reflects the real name of the pin. If this supply is present,
      the vdd-supply represents VCCA instead of VDD. Implementers should first
      check for this property, and if it is present assume that the vdd-supply
      represents the analog supply.
    deprecated: true

  reset-gpios:
    description: Reset line for the touchscreen, should be tagged
      as GPIO_ACTIVE_LOW

  zinitix,mode:
    description: Mode of reporting touch points. Some modes may not work
      with a particular ts firmware for unknown reasons. Available modes are
      1 and 2. Mode 2 is the default and preferred.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [1, 2]

  touchscreen-size-x: true
  touchscreen-size-y: true
  touchscreen-fuzz-x: true
  touchscreen-fuzz-y: true

additionalProperties: false

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

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

      touchscreen@20 {
        compatible = "zinitix,bt541";
        reg = <0x20>;
        interrupt-parent = <&gpio>;
        interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
        vcca-supply = <&reg_vcca_tsp>;
        vdd-supply = <&reg_vdd_tsp>;
        touchscreen-size-x = <540>;
        touchscreen-size-y = <960>;
        zinitix,mode = <2>;
      };
    };
+0 −40
Original line number Diff line number Diff line
Device tree bindings for Zinitx BT541 touchscreen controller

Required properties:

 - compatible		: Should be "zinitix,bt541"
 - reg			: I2C address of the chip. Should be 0x20
 - interrupts		: Interrupt to which the chip is connected

Optional properties:

 - vdd-supply		: Analog power supply regulator on VCCA pin
 - vddo-supply		: Digital power supply regulator on VDD pin
 - zinitix,mode		: Mode of reporting touch points. Some modes may not work
			  with a particular ts firmware for unknown reasons. Available
			  modes are 1 and 2. Mode 2 is the default and preferred.

The touchscreen-* properties are documented in touchscreen.txt in this
directory.

Example:

	i2c@00000000 {
		/* ... */

		bt541@20 {
			compatible = "zinitix,bt541";
			reg = <0x20>;
			interrupt-parent = <&msmgpio>;
			interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
			pinctrl-names = "default";
			pinctrl-0 = <&tsp_default>;
			vdd-supply = <&reg_vdd_tsp>;
			vddo-supply = <&pm8916_l6>;
			touchscreen-size-x = <540>;
			touchscreen-size-y = <960>;
			zinitix,mode = <2>;
		};

		/* ... */
	};