My Development Board
CPU |
S1 Scorpion ARMv7 |
Chipset |
Qualcomm 8250 SoC |
LCD Module & Touchscreen |
AUO H353VL10 |
Accelerometer |
Bosch SMB380 |
Ambient Light and Proximity Sensor |
Intersil ISL29018 |
Compass |
Yamaha MS-3C |
Amplifier |
Texas Instruments TPA2018 |
Power Management IC |
Texas Instruments TPS65023 |
WiFi/Bluetooth/FM Radio module |
Broadcom 4325 |
Camera |
Aptina MT9P012 |
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.