Skip to main content

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.