input: synaptics_dsx: add ability to identify controller
The touchscreen controllers are field-swappable on both customer devices and internal reference devices. Current touch driver architecture for Synaptics does not support dynamic detection of two or more Synaptics touchscreens having same slave address. The patch provides a solution for the scenario in which it is required to swap two Synaptics touchscreens without changing DT. Support of this is added in driver as follows: 1. During driver probe, touch controller is identified by reading the Package Id from controller. Package ID in F01_RMI_Query register comprises of a 16-bit Package ID and a 16-bit Package ID Revision of which both are unique for a touch controller part. If Package ID is present,then a RMI read operation in UI Mode at seventeenth register from F01 Query base returns it. First two bytes of this Package ID base are used to select the correct Synaptics touch controller from device tree. 2. Add a new property synaptics,detect-device in DT files which will allow software to enable this logic to detect correct touchscreen slave. 3. All such devices are placed as child nodes of Synaptics Touchpanel node. These child nodes are parsed only if the property synaptics,detect-device is defined in DT file. Change-Id: I2383b8bed85b130a8558db403b565cec693d17fa Signed-off-by:Himanshu Aggarwal <haggarwa@codeaurora.org> Signed-off-by:
Shantanu Jain <shjain@codeaurora.org>
Loading
Please register or sign in to comment