input: synaptics_dsx: add support for 2D sensor for soft-keys
The touchscreen controllers are field-swappable on both customer devices and internal reference devices. It is possible to have multiple Synaptics touch controllers where each controller would support softkey in a different way. While some touch controllers support 2-dimensional touch sensor, some others support capacitative button(0D) sensing. In the former case, the touch sensor reports native X-Y touch coordinates of the touch sensor in the soft key region. This is implemented by RMI4 function F11 or F12 and software needs to translate these coordinates to keycodes. In the latter case, the touch sensor directly reports the key codes and hence there is no need for software to do any translation. This is implemented by RMI4 function F1A or F19. The current architecture of Synaptics touchscreen driver does not have support to disambiguate between more than two Synaptics touch controllers that support 2-dimensional touch sensor for soft keys. To support this functionality in driver, a device-tree property is defined that describes the key codes for the soft-key area. The driver calculates the total soft key area based on the display resolution and touch sensor dimensions. Based on the total soft-key area and number of keys to be supported, it calculates the area for each of the soft-keys. It exports this information to userspace by populating a sysfs file. User-space programs can then translate the touch coordinates received to key codes. Change-Id: I99876527660d0be7cef86e88d7583e331159e7eb Signed-off-by:Himanshu Aggarwal <haggarwa@codeaurora.org> Signed-off-by:
Shantanu Jain <shjain@codeaurora.org>
Loading
Please register or sign in to comment