|CPU||S1 Scorpion ARMv7|
|Chipset||Qualcomm 8250 SoC|
|LCD Module & Touchscreen||AUO H353VL10|
|Ambient Light and Proximity Sensor||Intersil ISL29018|
|Amplifier||Texas Instruments TPA2018|
|Power Management IC||Texas Instruments TPS65023|
|WiFi/Bluetooth/FM Radio module||Broadcom 4325|
|LED driver||Texas Instruments TCA6507|
|Input||Atmel AVR-driven 4 keys capacitive keypad over I2C, GPIO keyboard|
That's my Acer Liquid E phone which I am trying to use in more ways than it was originally expected. Since I have never done anything major in the kernel aside a couple of simple patches for spca and the alps touchpad module I decided to try getting familiar with the way things are done in the kernel by updating Acer Liquid E kernel from 2.6.29+acer patches+cherrypicks from codeaurora to 2.6.35+codeaurora patches.
Before that I have decompiled Acer's EUU with Red Gate Reflector and wrote a .bin file extractor (no longer used on newer devices) and a simple test application to talk to the device via the DIAG interface that's present on all of Qualcomm MSM devices but it may be disabled by the OEM. It does not look like these two have helped me to get closer to the goal but it was a nice re-introduction to C programming which I haven't worked with for quite a while.
I am still working on cleaning up the 2.6.29 kernel and the major changes already implemented are:
AVR MFD Device
AVR is a programmable uC by Atmel, the exact version is not known (and I was not able to obtain high-resolution photos of Acer Liquid (A1) board. The original Acer driver had everything in one place and was driven by ioctl(). It took me a long time to realize how things are working with MFD devices and the result is in avr_mfd branch. There's also a repository for hardware/msm7k which implements the required userspace changes which is compatible with Acer android framework.
LED Driver, TI TCA6507
This seemed to be easy - a couple of cherry-picks for LED class and I am done. Well, the kernel and liblights are complete, but now the vold changes are required that would fix the permissions - see my previous post for the quick info on that.
The repository holds some other changes too, I am still learning and Linux kernel looks really beautiful on the inside.