About the kernel, there are things different from mine, joystick driver is different (no adc.js which I use in my kernel) so no ps3/xbox/null modes I guess.
Yup, I'd like to be able to push GPD XD support into Linux mainline, so no ps3/xbox emulation will be allowed.
Though, what I'm currently trying to do, is to make an Android application handle all gamepad => game stuff (either ps3/xbox emulation, or touchscreen emulation, ...)
This way it will work on all (rooted) Android devices/gamepad, not just GPD XD
My feeling is that this ROM is made using or porting firefly RK3399 SDK to RK3288. As far as I know, RK3288 SDK for nougat is beta and full of bugs, even the RK3399 is full of bugs. But that's just my guess. The maker of this rom is the one that can explain which one is using, because I only see kernel but not a device tree, so I suppose is firefly SDK and not aosp, but no idea because I don't have an XD to test or to help with the development
Well, that's not exactly firefly's rk3399 SDK, that's from another private SDK, but it looks really close.
I'll try to make something that works based on firefly rk3399's SDK, so that I can share all my changes.
So thanks for pointing me to this direction :-)
For the details of the work needed:
Rockchip dropped support for the PMIC, the WiFi chip, the audio chip, the touchscreen of the GPD XD.
For all of those, the code is actually there, but hasn't been updated for Linux 4.4
For the PMIC, I've actually sent mainline a basic support, so that's what I've integrated there.
It's still missing a lot. I'll keep working on the PMIC anyway to get a better mainline driver,
but I think it would be much faster to get a fully working device if someone just fixes Rockchip's code for it.
For the WiFi chip, I did some changes to make it build, changed a build init logic, and it seems to work, but I'm expecting bugs.
For audio, the good thing is that rockchip moved to a mainline method, and that our codec is supported in mainline!
So only minor configuration changes are required.
For the touchscreen, it has mainline support, I just had to enable it in kernel config \o/
For accelerometer, there is both a rockchip and mainline support. I need to switch to rockchip support, so that it works in Android.
For those who want to compare my kernel to rockchip's, do the delta with
https://github.com/rockchip-linux/kernel branch release-4.4
You'll notice there are actually really little changes.