linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Ferruh Yigit <fery@cypress.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-input@vger.kernel.org, Henrik Rydberg <rydberg@bitmath.org>,
	devicetree@vger.kernel.org
Subject: Re: [PATCH] Input: cyttsp - Convert bindings to YAML and extend
Date: Sat, 27 Mar 2021 11:56:47 -0600	[thread overview]
Message-ID: <20210327175647.GA312703@robh.at.kernel.org> (raw)
In-Reply-To: <20210325223520.1653715-1-linus.walleij@linaro.org>

On Thu, Mar 25, 2021 at 11:35:20PM +0100, Linus Walleij wrote:
> This converts the CYTTSP "Cypress TrueTouch Standard Product"
> to YAML bindings and fixes and adds some things in the process:
> 
> - Rename the bindings file to cypress,cy8ctma340 after the main
>   product in the series.
> - Add proper compatibles for the two known products:
>   CY8CTMA340 and CY8CTST341.
> - Deprecate "cypress,cyttsp-spi" and "cypress,cyttsp-i2c"
>   because device compatibles should be named after the
>   hardware and not after which bus they are connected to.
>   The topology implicitly tells us which bus it is and what
>   interface to used.
> - Add VCPIN and VDD supplies, these are present just like
>   on the CY8CTMA140.
> 
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Patch to add the new compatibles to the Linux driver is sent
> separately.
> ---
>  .../input/touchscreen/cypress,cy8ctma340.yaml | 153 ++++++++++++++++++
>  .../bindings/input/touchscreen/cyttsp.txt     |  93 -----------
>  2 files changed, 153 insertions(+), 93 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/cypress,cy8ctma340.yaml
>  delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/cyttsp.txt
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/cypress,cy8ctma340.yaml b/Documentation/devicetree/bindings/input/touchscreen/cypress,cy8ctma340.yaml
> new file mode 100644
> index 000000000000..063c140afbbd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/cypress,cy8ctma340.yaml
> @@ -0,0 +1,153 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/cypress,cy8ctma340.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Cypress CY8CTMA340 series touchscreen controller bindings
> +
> +description: The Cypress CY8CTMA340 series (also known as "CYTTSP" after
> +  the marketing name Cypress TrueTouch Standard Product) touchscreens can
> +  be connected to either I2C or SPI buses.
> +
> +maintainers:
> +  - Javier Martinez Canillas <javier@dowhile0.org>
> +  - Linus Walleij <linus.walleij@linaro.org>
> +
> +allOf:
> +  - $ref: touchscreen.yaml#
> +
> +properties:
> +  $nodename:
> +    pattern: "^touchscreen(@.*)?$"
> +
> +  compatible:
> +    oneOf:
> +      - const: cypress,cy8ctma340
> +      - const: cypress,cy8ctst341
> +      - const: cypress,cyttsp-spi
> +        description: Legacy compatible for SPI connected CY8CTMA340
> +        deprecated: true
> +      - const: cypress,cyttsp-i2c
> +        description: Legacy compatible for I2C connected CY8CTMA340
> +        deprecated: true
> +
> +  reg:
> +    description: I2C address when used on the I2C bus, or the SPI chip
> +      select index when used on the SPI bus
> +
> +  clock-frequency:
> +    description: I2C client clock frequency, defined for host when using
> +      the device on the I2C bus
> +    minimum: 0
> +    maximum: 400000
> +
> +  spi-max-frequency:
> +    description: SPI clock frequency, defined for host, defined when using
> +      the device on the SPI bus. The throughput is maximum 2 Mbps so the
> +      typical value is 2000000, if higher rates are used the total throughput
> +      needs to be restricted to 2 Mbps.
> +    minimum: 0
> +    maximum: 6000000
> +
> +  interrupts:
> +    description: Interrupt to host, must be flagged as
> +      IRQ_TYPE_EDGE_FALLING.
> +    maxItems: 1
> +
> +  vcpin-supply:
> +    description: Analog power supply regulator on VCPIN pin
> +
> +  vdd-supply:
> +    description: Digital power supply regulator on VDD pin
> +
> +  reset-gpios:
> +    description: Reset line for the touchscreen, should be tagged
> +      as GPIO_ACTIVE_LOW
> +
> +  bootloader-key:
> +    description: the 8-byte bootloader key that is required to switch
> +      the chip from bootloader mode (default mode) to application mode
> +    $ref: /schemas/types.yaml#/definitions/uint8-array
> +    items:
> +      - minItems: 8
> +        maxItems: 8

Just:

minItems: 8
maxItems: 8

(no 'items')

> +
> +  touchscreen-size-x: true
> +  touchscreen-size-y: true
> +  touchscreen-fuzz-x: true
> +  touchscreen-fuzz-y: true
> +
> +  active-distance:
> +    description: the distance in pixels beyond which a touch must move
> +      before movement is detected and reported by the device
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    minimum: 0
> +    maximum: 15
> +
> +  active-interval-ms:
> +    description: the minimum period in ms between consecutive
> +      scanning/processing cycles when the chip is in active mode
> +    $ref: /schemas/types.yaml#/definitions/uint32

Don't need a type for standard unit suffix properties.

> +    minimum: 0
> +    maximum: 255
> +
> +  lowpower-interval-ms:
> +    description: the minimum period in ms between consecutive
> +      scanning/processing cycles when the chip is in low-power mode
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    minimum: 0
> +    maximum: 2550
> +
> +  touch-timeout-ms:
> +    description: minimum time in ms spent in the active power state while no
> +      touches are detected before entering low-power mode
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    minimum: 0
> +    maximum: 2550
> +
> +  use-handshake:
> +    description: enable register-based handshake (boolean). This should only
> +      be used if the chip is configured to use 'blocking communication with
> +      timeout' (in this case the device generates an interrupt at the end of
> +      every scanning/processing cycle)
> +    $ref: /schemas/types.yaml#/definitions/flag
> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - bootloader-key
> +  - touchscreen-size-x
> +  - touchscreen-size-y
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    #include <dt-bindings/gpio/gpio.h>
> +    spi {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      num-cs = <1>;
> +      cs-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
> +
> +      touchscreen@0 {
> +        compatible = "cypress,cy8ctma340";
> +        reg = <0>;
> +        interrupt-parent = <&gpio>;
> +        interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
> +        reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
> +        vdd-supply = <&ldo_aux1_reg>;
> +        vcpin-supply = <&ldo_aux2_reg>;
> +        bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
> +        touchscreen-size-x = <480>;
> +        touchscreen-size-y = <800>;
> +        active-interval-ms = <0>;
> +        touch-timeout-ms = <255>;
> +        lowpower-interval-ms = <10>;
> +      };
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/cyttsp.txt b/Documentation/devicetree/bindings/input/touchscreen/cyttsp.txt
> deleted file mode 100644
> index 6ee274aa8b03..000000000000
> --- a/Documentation/devicetree/bindings/input/touchscreen/cyttsp.txt
> +++ /dev/null
> @@ -1,93 +0,0 @@
> -* Cypress cyttsp touchscreen controller
> -
> -Required properties:
> - - compatible		: must be "cypress,cyttsp-i2c" or "cypress,cyttsp-spi"
> - - reg			: Device I2C address or SPI chip select number
> - - spi-max-frequency	: Maximum SPI clocking speed of the device (for cyttsp-spi)
> - - interrupts		: (gpio) interrupt to which the chip is connected
> -			  (see interrupt binding[0]).
> - - bootloader-key	: the 8-byte bootloader key that is required to switch
> -			  the chip from bootloader mode (default mode) to
> -			  application mode.
> -			  This property has to be specified as an array of 8
> -			  '/bits/ 8' values.
> -
> -Optional properties:
> - - reset-gpios		: the reset gpio the chip is connected to
> -			  (see GPIO binding[1] for more details).
> - - touchscreen-size-x	: horizontal resolution of touchscreen (in pixels)
> - - touchscreen-size-y	: vertical resolution of touchscreen (in pixels)
> - - 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)
> - - active-distance	: the distance in pixels beyond which a touch must move
> -			  before movement is detected and reported by the device.
> -			  Valid values: 0-15.
> - - active-interval-ms	: the minimum period in ms between consecutive
> -			  scanning/processing cycles when the chip is in active mode.
> -			  Valid values: 0-255.
> - - lowpower-interval-ms	: the minimum period in ms between consecutive
> -			  scanning/processing cycles when the chip is in low-power mode.
> -			  Valid values: 0-2550
> - - touch-timeout-ms	: minimum time in ms spent in the active power state while no
> -			  touches are detected before entering low-power mode.
> -			  Valid values: 0-2550
> - - use-handshake	: enable register-based handshake (boolean). This should
> -			  only be used if the chip is configured to use 'blocking
> -			  communication with timeout' (in this case the device
> -			  generates an interrupt at the end of every
> -			  scanning/processing cycle).
> -
> -[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> -[1]: Documentation/devicetree/bindings/gpio/gpio.txt
> -
> -Example:
> -	&i2c1 {
> -		/* ... */
> -		cyttsp@a {
> -			compatible = "cypress,cyttsp-i2c";
> -			reg = <0xa>;
> -			interrupt-parent = <&gpio0>;
> -			interrupts = <28 0>;
> -			reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
> -
> -			touchscreen-size-x = <800>;
> -			touchscreen-size-y = <480>;
> -			touchscreen-fuzz-x = <4>;
> -			touchscreen-fuzz-y = <7>;
> -
> -			bootloader-key = /bits/ 8 <0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08>;
> -			active-distance = <8>;
> -			active-interval-ms = <0>;
> -			lowpower-interval-ms = <200>;
> -			touch-timeout-ms = <100>;
> -		};
> -
> -		/* ... */
> -	};
> -
> -	&mcspi1 {
> -		/* ... */
> -		cyttsp@0 {
> -			compatible = "cypress,cyttsp-spi";
> -			spi-max-frequency = <6000000>;
> -			reg = <0>;
> -			interrupt-parent = <&gpio0>;
> -			interrupts = <28 0>;
> -			reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
> -
> -			touchscreen-size-x = <800>;
> -			touchscreen-size-y = <480>;
> -			touchscreen-fuzz-x = <4>;
> -			touchscreen-fuzz-y = <7>;
> -
> -			bootloader-key = /bits/ 8 <0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08>;
> -			active-distance = <8>;
> -			active-interval-ms = <0>;
> -			lowpower-interval-ms = <200>;
> -			touch-timeout-ms = <100>;
> -		};
> -
> -		/* ... */
> -	};
> -- 
> 2.29.2
> 

      reply	other threads:[~2021-03-27 17:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-25 22:35 [PATCH] Input: cyttsp - Convert bindings to YAML and extend Linus Walleij
2021-03-27 17:56 ` Rob Herring [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210327175647.GA312703@robh.at.kernel.org \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=fery@cypress.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-input@vger.kernel.org \
    --cc=rydberg@bitmath.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).