mbox series

[RFC,0/3] input: add DFROBOT touchscreen controller

Message ID 20211216233557.9393-1-tharvey@gateworks.com (mailing list archive)
Headers show
Series input: add DFROBOT touchscreen controller | expand

Message

Tim Harvey Dec. 16, 2021, 11:35 p.m. UTC
The DFROBOT DFR0678 [1] and DFR0550 [2] touchscreen displays are meant
to be compatible with the official RaspberryPi 7in display. However
instead of directly conntecting the FT5x06 touch controller to the I2C
bus going to the host processor they route it through an MCU and emulate
a virtual FT5x06 controller but don't do a very good job at it. The
method the RaspberryPi firmware used to read the touch data is supported
(which consists of reading R2 to get the number of touch points, then
reading 4 bytes of data for each point in discrete I2C transactions. If
you try to use the FT5x06 driver which reads all registers starting at
R0 at once you will get invalid point data.

This controller lacks an interrupt and does not send UP events so
polling mode is used and event ID tracking is used to emulate UP events.

This series adds dt bindings and a standalone driver for this touch
controller as opposed to an RFC series I sent out that attempts to add
support to the existing edt-ft5x06 driver.

Tim
[1] - https://www.dfrobot.com/product-2193.html
[2] - https://www.dfrobot.com/product-1784.html

Tim Harvey (3):
  dt-bindings: Add vendor prefix for DFRobot
  dt-bindings: touchscreen: Add dfr0550 bindings
  input: touchscreen: add dfr0550 support

 .../bindings/input/touchscreen/dfr0550.yaml   |  53 +++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   5 +
 drivers/input/touchscreen/Kconfig             |  12 +
 drivers/input/touchscreen/Makefile            |   1 +
 drivers/input/touchscreen/dfr0550.c           | 208 ++++++++++++++++++
 6 files changed, 281 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/touchscreen/dfr0550.yaml
 create mode 100644 drivers/input/touchscreen/dfr0550.c

Comments

Tim Harvey Jan. 21, 2022, 5:25 p.m. UTC | #1
On Thu, Dec 16, 2021 at 3:36 PM Tim Harvey <tharvey@gateworks.com> wrote:
>
> The DFROBOT DFR0678 [1] and DFR0550 [2] touchscreen displays are meant
> to be compatible with the official RaspberryPi 7in display. However
> instead of directly conntecting the FT5x06 touch controller to the I2C
> bus going to the host processor they route it through an MCU and emulate
> a virtual FT5x06 controller but don't do a very good job at it. The
> method the RaspberryPi firmware used to read the touch data is supported
> (which consists of reading R2 to get the number of touch points, then
> reading 4 bytes of data for each point in discrete I2C transactions. If
> you try to use the FT5x06 driver which reads all registers starting at
> R0 at once you will get invalid point data.
>
> This controller lacks an interrupt and does not send UP events so
> polling mode is used and event ID tracking is used to emulate UP events.
>
> This series adds dt bindings and a standalone driver for this touch
> controller as opposed to an RFC series I sent out that attempts to add
> support to the existing edt-ft5x06 driver.
>
> Tim
> [1] - https://www.dfrobot.com/product-2193.html
> [2] - https://www.dfrobot.com/product-1784.html
>
> Tim Harvey (3):
>   dt-bindings: Add vendor prefix for DFRobot
>   dt-bindings: touchscreen: Add dfr0550 bindings
>   input: touchscreen: add dfr0550 support
>
>  .../bindings/input/touchscreen/dfr0550.yaml   |  53 +++++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
>  MAINTAINERS                                   |   5 +
>  drivers/input/touchscreen/Kconfig             |  12 +
>  drivers/input/touchscreen/Makefile            |   1 +
>  drivers/input/touchscreen/dfr0550.c           | 208 ++++++++++++++++++
>  6 files changed, 281 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/input/touchscreen/dfr0550.yaml
>  create mode 100644 drivers/input/touchscreen/dfr0550.c
>

Any feedback on this?

The other approach I posted an RFC series for was to add support to
the existing edt-ft5x06 driver [1].

Best regards,

Tim
[1] https://patchwork.kernel.org/project/linux-input/list/?series=596977