input: synaptics_i2c_rmi4: 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 Synaptics touchscreens with the 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: Iac0eaef1b8cd301da763ef980a33ba27ccfb858d
Signed-off-by:
Himanshu Aggarwal <haggarwa@codeaurora.org>
Loading
Please register or sign in to comment