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@xxxxxxxxxxxxxxx > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > 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@xxxxxxxxxxxx> > + - Linus Walleij <linus.walleij@xxxxxxxxxx> > + > +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 >