N900
Contents
Status
chip | purpose | docs | impl | merge | board impl | board merge |
---|---|---|---|---|---|---|
OMAP3430 | System-on-chip | OMAP34xx TRM | 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 | |
* OMAP 3 Camera ISP | OMAP3 Camera Chip Connection Bus | OMAP34xx TRM | Yes | 2.6.39-rc1 | N/A | |
* OMAP DSS | Video HW abstraction layer | OMAP34xx TRM | Yes | Yes | N/A | |
* OMAP DRM | KMS video driver | N/A | Yes | 3.3-rc1 | N/A | |
* TMS320 C64x | DSP (also called IVA 2+) | datasheet | Yes | Yes | N/A (Userspace: gst-dsp) | |
* PowerVR SGX530 | OpenGL ES and OpenVG acceleration | No | No | No | No | No |
* OMAP Boot Tags? | Provides boot information from bootloader (NOLO) | ? | ? | ? | ? | ? |
* OMAP Watchdog | Watchdog | OMAP34xx TRM | Yes | 3.8 | Yes | Yes |
* OMAP MMC/SD/SDIO | eMMC & SD/MMC card | OMAP34xx TRM | 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 | |
* | Watchdog | part of TI TWL4030 | Yes | 3.8 | Yes | Yes |
GPIO | Camera button | N/A | Yes | Yes | Yes | Yes |
Taos TSL2563 | Ambient light sensor | datasheet | Yes | 2.6.33 | Yes | Yes |
LP5523 | LED driver | documentation | 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 | datasheet | Yes | 2.6.32 | Yes | Yes |
TPA6130a2 | Headphone amplifier | datasheet | Yes | 2.6.33 | Yes | Yes |
TLV320AIC3X | Digital audio data serial | ti.com | 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 | |
Omap SSI | Synchronous Serial Interface | code | RFCv5 (2011-06-10) | No | No | No |
* TI NaviLink NL5350 | GPS (via Phonet modem protocol) | reveng | Userspace gps2.c | |||
* | A-GPS | No | Client/server SUPL application: http://www.tajuma.com/supl/index.html | |||
isp1704 | USB charger detector | datasheet | 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 | 3.5-rc1 |
ADP 1653 | Flash Torch | datasheet | Yes | 3.1-rc1 | Yes | No |
rx51_battery | Battery design capacity, battery temperature | code | Yes | 3.8 | Yes | 3.8 |
bq24150a | Battery charger | documentation | Yes | 3.8 | 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 | N/A | Yes | 3.7-rc1 | Yes | 3.7-rc1 |
AV/Jack/GPIO | Nokia AV accessory detection, Tvout and Headset button support | old code | Yes | No | Yes | No |
Some patches are in meego obs repository: https://build.pub.meego.com/package/files?package=kernel-adaptation-n900&project=CE%3AAdaptation%3AN900
Camera
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.
U-Boot
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 mainlined, but the fancy bootmenu is still missing: PATCH v2: ANSI terminal Bootmenu.
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
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
Modem
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:
- SSI driver (not yet mainline, WIP)
- Status 2012-01-09: http://marc.info/?l=linux-omap&m=132611324318625&w=2
- HSI framework needed by the SSI driver (mainline since 3.4-rc2)
- PhoNet for userspace communication (mainline since 2.6.28)
Patches missing mainline to get modem support:
- HSI: omap_ssi: OMAP SSI driver
- HSI: omap_ssi: OMAP SSI kernel configuration
- board data for rx51, get e.g. from meego's board code