blob: 4dfbb93678b564377e79f271a47817f435c3f558 [file] [log] [blame]
# 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
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
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
minItems: 8
maxItems: 8
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
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
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
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>;
};
};
...