Pick a patch for synapitics rmi4 reset gpio support#193
Conversation
Implement reset GPIO handling logic for the rmi_i2c driver. This logic is required for some mobile devices to successfully initialize the touch controller. The timings for the assertion of the reset GPIO were derived from the GPLv2+ licensed synaptics-dsx-v2.1 vendor driver release and research I conducted into downstream device tree sources. Values of 10ms to 20ms are commonly found. Tested-On: Motorola Moto G5 Plus (XT1685 "potter") Signed-off-by: Felix Kaechele <felix@kaechele.ca> Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
ea671f5 to
cf61f99
Compare
|
Seems to boot fine on whyred, dmesg https://paste.sr.ht/~minlexx/cc1bc4de8a498e848d9ccf737e3eb13cba465392
sometimes an error is seen: |
8efa2f1 to
79d84f8
Compare
|
Interesting things happen when you define the same GPIO as reset-gpio for both panel and touchscreen: tons of red errors in dmesg, but finally at some moment it magically works. Does kernel have some mechanism for shared reset GPIOs now? 🤔 So for our case if you set TLMM GPIO 53 as So, initially they both fail to request GPIO, then after msm framebuffer comes online, they both suddenly probe? And it all works after that. |
|
So yeah, it seems kernel now is very smart when some gpios are specified in different nodes.
So maybe doing it like this is okay, both display and touch come reliably every boot, before failed rmi_i2c probe lead to diplay panel to not show anything, only backlight... |
|
For whyred though, resetting using It's compltely placebo effect. What new code does here, is that if reset-gpio is defined for rmi_i2c node, then additional extra reset-delay-ms is applied, further delaying touch probe at later point in time, so it just adds more delay, allowing it to probe after display panel :D |
|
So while it seems to be partially completely useless, it makes stuation better when making use of same reset-gpios for panel/touch (like for pioneer use case, where there are no reset-gpio neither in downstream dtb, nor in shematics). I'll pick jason's dts/yaml/makefile commits here and test it on jason too. And we'll live with it |
3505c57 to
2e92637
Compare
Signed-off-by: Xingyi Sun <Kernel114514@hotmail.com>
e781d4f to
c4985e3
Compare
Add device tree for Xiaomi Redmin Nore 3 (jason) smatrphone, based on Qualcomm SDM660 SoC. Supported features: * Debug UART * Volume Up/Down, power buttons * USB * Internal eMMC (no SD card slot on jason) * Display, backlight * Touchscreen * GPU and panel * Battery charging and fuelgauge * Haptics * 2 capacitive buttons * Notification LED, buttons backlight * ADSP remote processor + sensors * CDSP remote process * Modem remote processor * WCN3990 Wi-Fi & Bluetooth Co-developed-by: Xingyi Sun <Kernel114514@hotmail.com> Signed-off-by: Xingyi Sun <Kernel114514@hotmail.com> Co-developed-by: Alexey Minnekhanov <alexeymin@minlexx.ru> Signed-off-by: Alexey Minnekhanov <alexeymin@minlexx.ru>
c4985e3 to
b1c2079
Compare

Pick a patch for synapitics rmi4 reset gpio support from its original author.
Also test all other our devices with rmi4 touchscreen, which may be affected:
any maybe remove the long delay hacks from whyred/pioneer