From b2afd931e2d83ce346811a68a34ee56c48be6d35 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Mon, 2 May 2016 22:01:22 +0100 Subject: fuze+: rewrite touchpad driver The old driver was bad in many respect, it had some race conditions, it was using a thread to serialize transfers because of the legacy i2c interface. It also had huge latency (typically 50ms but delays up to 300ms can happen), thus some presses were missed. The new driver takes advantage of the new i2c driver to do everything asynchronously. It also does not need a thread anymore because queueing ensures proper serialization. It provides much better and reliable latency (typically ~2ms). Also fix the debug screen which was horribly broken. The new screen also displays the deadzones. Change-Id: I69b7f99b75053e6b1d3d56beb4453c004fd2076e --- firmware/export/synaptics-rmi.h | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'firmware/export') diff --git a/firmware/export/synaptics-rmi.h b/firmware/export/synaptics-rmi.h index 9d9d285..e7fe14d 100644 --- a/firmware/export/synaptics-rmi.h +++ b/firmware/export/synaptics-rmi.h @@ -123,26 +123,4 @@ struct rmi_2d_gesture_data_t unsigned char flick; } __attribute__((packed)); -/* Initialize the RMI driver, the i2c_bus_index is the bus index returned by - * the generic_i2c driver; the i2c_dev_addr is the i2c address of the device. - * NOTE: the driver automatically handles the page select mechanism used for - * RMI over i2c and assumes a standard page select register at 0xff. */ -int rmi_init(int i2c_dev_addr); -/* Read one or more registers. - * WARNING: don't cross a page boundary ! */ -int rmi_read(int address, int byte_count, unsigned char *buffer); -/* Read a single register (return -1 on error) - * WARNING: beware of register consistency (N x read 1 byte != reads N bytes) */ -int rmi_read_single(int address); /* return byte value or <0 in case of error */ -/* Write one of more register - * WARNING: don't cross a page boundary ! */ -int rmi_write(int address, int byte_count, const unsigned char *buffer); -/* Write one register - * WARNING: don't cross a page boundary ! */ -int rmi_write_single(int address, unsigned char byte); -/* set the device to the given sleep mode */ -void rmi_set_sleep_mode(unsigned char sleep_mode); -/* set the device's report rate to the given value */ -void rmi_set_report_rate(unsigned char report_rate); - #endif -- cgit v1.1