jeanrhum Posted January 5, 2021 Posted January 5, 2021 Hi, I can confirm that latest available testing image based on groovy, downloaded directly from armbian pine64 page works well ! 0 Quote
tobogdan Posted March 17, 2021 Posted March 17, 2021 Hi, Is anyone having issues with the touchscreen itself being reversed to the LCD panel using the latest mainline? I do get the LCD to come up and am seeing no issues - fantastic work by the way - but it's weird that the touchscreen is coming up the way it is, when I haven't had this issue on the earlier android builds at all. I do see on the goodix driver source that there's some quirks that can be used for inverting x and y positions being reported (which is the issue I currently have - and it tracks if I rotate the screen, it's always inverted), but I can't get them to work at all on the main (not beta) release. I'm using the 5.10.21-sunxi64 kernel based Focal Gnome Desktop image from the stable releases. My armbianEnv.txt file consists of the following change: <original stuff> overlay_prefix=sun50i-a64 overlays=pine64-7inch-lcd rootdev=UUID=.... <more original stuff> I have tried using dtoverlay and trying something like the following, but with no success (as suggested by similar posts from raspi4 folks trying to get their goodix-enabled touch panels working: <original stuff> overlay_prefix=sun50i-a64 overlays=pine64-7inch-lcd dtoverlay=goodix,interrupt=4,reset=17,touchscreen-inverted-x,touchscreen-inverted-y rootdev=UUID=.... <more original stuff> Thoughts? Suggestions? Is there a correct way of doing this in the env file, or elsewhere? Thanks in advance! 0 Quote
karlitos Posted April 1, 2021 Posted April 1, 2021 Hello @tobogdan I have exact the same problem. Debian Buster 5.10.21-sunxi64 - installed minimal Xorg, the touch is inverted in both directions. Also it seems, that scrollingis messed up as well. Did you find any solution ? I found at least a workaround by inverting the axis in the libinput driver You may need install xinput for this. $ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech M720 Triathlon id=6 [slave pointer (2)] ⎜ ↳ Goodix Capacitive TouchScreen id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ USB Keyboard id=7 [slave keyboard (3)] ↳ USB Keyboard System Control id=8 [slave keyboard (3)] ↳ USB Keyboard Consumer Control id=9 [slave keyboard (3)] ↳ axp20x-pek id=11 [slave keyboard (3)] ↳ Logitech M720 Triathlon id=12 [slave keyboard (3)] ↳ Goodix Capacitive TouchScreen id=13 [slave keyboard (3)] The touch screen pointer is located under the id 10 $ xinput list-props 10 Device 'Goodix Capacitive TouchScreen': Device Enabled (121): 1 Coordinate Transformation Matrix (122): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix (279): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix Default (280): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Send Events Modes Available (267): 1, 0 libinput Send Events Mode Enabled (268): 0, 0 libinput Send Events Mode Enabled Default (269): 0, 0 Device Node (270): "/dev/input/event4" Device Product ID (271): 1046, 911 You need to change the coordinate matrix - here the number 122, for details see here $ xinput set-prop 10 122 -1 0 1 0 -1 1 0 0 1 $ xinput list-props 10 Device 'Goodix Capacitive TouchScreen': Device Enabled (121): 1 Coordinate Transformation Matrix (122): -1.000000, 0.000000, 1.000000, 0.000000, -1.000000, 1.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix (279): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Calibration Matrix Default (280): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Send Events Modes Available (267): 1, 0 libinput Send Events Mode Enabled (268): 0, 0 libinput Send Events Mode Enabled Default (269): 0, 0 Device Node (270): "/dev/input/event4" Device Product ID (271): 1046, 911 At least clicking works fine now, problem is still, that any dragging results in scroll event downwards 0 Quote
tobogdan Posted April 3, 2021 Posted April 3, 2021 Hi @karlitos, That's basically what I've had to do as well, but it's a bit of a hacky way of getting it working especially when it seems that the goodix module does have quirks that you should be able to activate at the driver level. Ideally, we have the goodix module quirks enable and just treat it that way. I haven't tried rotating my screen yet, but I assume using the xinput method will end up breaking once you rotate the display. For some reason, I can't seem to get the quirks registering. I think I'm just doing something wrong, I've never had to enable quirks before so it's probably just me. I also see the same issue as you with the click/drag part but I'm not altogether sure how to handle that. I think the touch screen was only ever created for simple touch/poke interfaces, not for a 10-finger experience like you get on most modern systems, right? Also, I was wondering if there's another thread we should start about this particular piece (as this thread was initially created for the LCD part, not necessarily for the touch piece) - if anyone wants to chime in here. Hopefully folks with more experience/understanding than me can respond here. 0 Quote
karlitos Posted April 6, 2021 Posted April 6, 2021 Hi @tobogdan, are you sure, the dtoverlay= line apply for the Pine64/Armbian ? I found it mentioned only in connecntion with raspberryPi. I also checked the /boot/dtb directory and did not found any .dtb file related to the goodix driver. I am actually quite happy now with the workaround. Since the device id might change between reboots I was more successfull using xinput set-prop 'pointer:Goodix Capacitive TouchScreen' 122 -1 0 1 0 -1 1 0 0 1 which seems to be consistent 0 Quote
tobogdan Posted May 24, 2021 Posted May 24, 2021 Thanks @karlitos for the suggestion. I was trying to do something a bit more robust so that I wouldn't have to worry about devices moving around, or having to set up a login-script per user that got created on the device. So I did something akin to what you did, but set it up in the /etc/X11/xorg.conf.d/01-armbian-defaults.conf section. I simply added the following: Section "InputClass" Identifier "pointer:Goodix Capacitive TouchScreen" MatchProduct "Goodix Capacitive TouchScreen" Option "TransformationMatrix" "-1 0 1 0 -1 1 0 0 1" EndSection This seems to work pretty consistently and well. While I'd like to use the tweaks instead, and just have it handled natively outside of relying on XInput, I guess this is good enough for now. Thanks for your hint for using the "pointer" section since I had no idea for the life of me why it wasn't picking it up until I set it up like the above. This was tested on the xfce and gnome variants of the current kernel (5.10.34-sunxi64). 0 Quote
jam Posted May 25, 2021 Posted May 25, 2021 As i know,the 7incl lcd is a mipi-dsi video moed panel. Is there any chance work on a mipi-dsi command mode panel? or the driver for now just support the video mode? 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.