Sunday, June 8, 2008

rx1950 porting

Sooooo, here we go :)

Here I'll post history of porting linux to rx1950, info about its hardware, etc.

Prehistory:

Port was started by Victor Chukhantsev and Denis Grigoriev in the end of 2006. At the early stage modified version of linux-2.6.17 could be booted into console using modified haret. SD card didn't work, usb didn't work...

At the beggining of 2007 (when I've joined to the development ;)) many drivers for rx1950 were ported (they were taken from other s3c24xx-based devices): s3c2440mci (sd/mmc driver), backlight driver, usb-device driver. Suspend/battery control/sound still didn't work. Also there were some issues with usb-device driver

From may'07 till may'08 development was stalled.

Our days:

In may'08 I've continued porting. Old patches were adapted to 2.6.25.4 kernel, old s3c2440mci driver was removed, and new s3cmci driver took his place. Also some patches were taken from openmoko repository (s3c2440-usbdevice workaround)

I've added usb pullup handling to the mach-rx1950.c - now usb works perfectly.

In the begging of June suspend support was added. rx1950 uses same H1940_SUSPEND_CHECK and H1940_SUSPEND_RESUMEAT as rx3000, and same checksum algorigthm. Also to boot from nand after wakeup we need to configure GPG13, GPG14, GPG15 to input mode. There's still one issue - lcd flickers after resume, and I don't know how to fix it :(

Today I've started to investigate how to control battery state, how to charge it, etc.

It seems that battery state (charge level) is controlled with built-in ADC. AIN0 - battery level, AIN1 - current consumption (not sure), AIN3 - unknown (maybe some sample voltage level?)

GPF2 (input)- ==0 if charger connected, ==1 otherwise

GPF3 (input)- ==1 if battery charged (no charging needed), ==0 otherwise

GPJ2 (output), GPJ3 (output), GPJ6 (output) - should be set to 1 to enable charging, 0 - to disable charging

GPA3 (output), GPA4 (output) ==1 to enable red LED blinking

GPA6 (output), GPA7 (output) ==1 to enable reg LED solid light

I.e. only when GPF2 == 0 and GPF3 == 0 we should enable charging.

Now I'm working on implementing driver that will control rx1950 battery.

Stay tuned for latest news ;) 

P.S. Sorry for my English ;)

3 comments:

MoonUnit said...

it's great someone has started porting again for the rx1950.

ty.

anarsoul said...

Yep, I hope that it will be usefull for somebody ;)

Caluna said...

yes, great work; I looked at this project a year ago and was very surprised, although not everything worked. I tried to install updated version, unfortunately the opie image looks for an 2.6.21 kernel, so that it hangs on booting. But I'm sure that it will be great when you will be finished! Wish you the best!!!