# 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>; }; }; ...