From eLinux.org
Revision as of 02:58, 4 April 2012 by Pali (Talk | contribs) (Status)

Jump to: navigation, search


chip purpose docs impl merge board impl board merge
OMAP3430 System-on-chip code Yes Yes Yes Yes
* Cortex A8 CPU ARM infocenter Yes Yes N/A
* * ARMv7 Instruction set ARM infocenter Yes Yes N/A
* * NEON Media Extensions ARM infocenter Yes Yes N/A
* * Thumb Code compression ARM infocenter Yes by 2.6.12 ? N/A
* * Thumb2 Code compression ARM infocenter Yes Yes N/A
* * ThumbEE Instruction Set for JIT compilers ARM infocenter Yes Yes N/A (Userspace: Java VM?)
* * VFP Floating-point coprocessor ARM infocenter Yes by 2.6.12 ? N/A
* M-Shield AES acceleration code Yes 2.6.37-rc1 N/A
* IVA 2+ accelerator Video encoder/decoder  ? Yes Yes N/A (Userspace: ?)
* OMAP 3 Camera OMAP3 Camera Chip Connection Bus code Yes 2.6.39-rc1 N/A
* OMAP DSS KMS video driver N/A Yes 3.3-rc1 N/A
* TMS320 C64x DSP datasheet Yes Yes N/A (Userspace: gst-dsp)
 ??? eMMC & SD/MMC card code Yes Yes Yes Yes
TI TWL4030 multifunction (I2C) TPS65950 TRM N/A
* Audio part of TI TWL4030 Yes Yes Yes Yes
* Vibrator part of TI TWL4030 Yes Yes Yes 2.6.39-rc1
* Real-Time Clock part of TI TWL4030 Yes Yes N/A
GPIO Camera button N/A Yes Yes Yes Yes
Taos TSL2563 Ambient light sensor datasheet Yes 2.6.33 Yes Yes
LP5523 LED code Yes 2.6.37-rc2 Yes 3.1-rc1
Sony ACX565AKM LCD panel code Yes 2.6.35 Yes 2.6.36
TI TSC2005 Touchscreen controller datasheet 2.6.39-rc1 2.6.39-rc1 Yes 3.3-rc1
WL1251 802.11b/g WiFi code Yes 2.6.31 Yes 2009-11-22
Si4713 FM transmitter code Yes 2.6.32 Yes Yes
TPA6130a2 Headphone amplifier datasheet Yes 2.6.33 Yes Yes
TLV320AIC3X Digital audio data serial code Yes 2.6.25 Yes Yes
GPIO Proximity sensor N/A Yes Yes Yes Yes
GPIO Keyboard N/A (layout: code) Yes 2.6.33 Yes Yes
Phonet Modem protocol code Yes 2.6.28 N/A
HSI Modem Bus Framework code Yes 3.4-rc2 N/A
* TI NaviLink NL5350 GPS (via Phonet modem protocol) reveng Userspace gsp2.c
isp1704 USB charger detector code Yes 2.6.37-rc1 Yes 2011-04-20
bq27200 Battery monitor chip documentation Yes 2.6.28 patch 3.3-rc1
OneNAND Flash memory code Yes 2.6.15 Yes Yes
LIS302DL Accelerometers datasheet Yes 2.6.32 patch No
ADP 1653 Flash Torch code Yes 3.1-rc1 Yes No
bq24150 Battery charger documentation WIP No WIP No
STM VS6555 Webcam datasheet Yes No Yes No
ET8EK8 Main Camera datasheet Yes No Yes No
AD5820 Autofocus code Yes No Yes No
BCM2048 Bluetooth old code Yes No Yes No
* FM/RDS receiver old code Yes No Yes No
IR Diode on GPIO Infrared/CIR transmitter old code Yes No Yes No
AV/Jack/GPIO Nokia AV accessory detection, Tvout and Headset button support old code Yes No Yes No
SSI McSAAB IMP? Modem Bus old code No No No No
* PowerVR SGX530 OpenGL ES and OpenVG acceleration No No No No No


Camera (front & back) drivers are available from this git: [1]. The code is not in the mainline kernel, because it uses a camera firmware, which can be avoided by changing the driver.


Instead of booting the kernel directly from NOLO (which restricts you to using ONE kernel), U-Boot can be used as second bootloader. The Boot Process will end up like this: NOLO -> U-Boot -> Kernel. The Maemo kernel is appended to U-Boot, since U-Boot will be at the location where the Maemo kernel is located normally.

The U-Boot patches to support the N900 are not yet mainline, but have been proposed for inclusion recently: Nokia RX-51 support

Git repository with N900 patches based on U-Boot master is here: https://gitorious.org/u-boot-shr/u-boot (branch pali)

Thread on talk.maemo.org where is last new version: http://talk.maemo.org/showthread.php?t=81613


Charging is currently done with a shell script, which and "i2c-dev" kernel module. There are plans to move this into the kernel, so that charging happens automatically once you plug your N900 into a USB port. You can find discussions and some code here. Recently (3.3-rc1) the kernel got a new Charge Manager Framework (Announcement), which will help with this task. You can find its documentation under: Documentation/power/charger-manager.txt


The modem is connected via a bus called SSI, which is an old version of HSI. In linux multiple things are involved to get it working:

Patches missing mainline to get modem support: