Difference between revisions of "N900"

From eLinux.org
Jump to: navigation, search
m (HSI Framework has been merged into torvalds tree :))
(Modem)
Line 334: Line 334:
 
== Modem ==
 
== Modem ==
  
The Modem is connected via a bus called SSI, which is an old version of HSI.
+
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:
 
In linux multiple things are involved to get it working:
  
 
* SSI driver (not yet mainline, WIP)
 
* SSI driver (not yet mainline, WIP)
 
** Status 2012-01-09: http://marc.info/?l=linux-omap&m=132611324318625&w=2
 
** Status 2012-01-09: http://marc.info/?l=linux-omap&m=132611324318625&w=2
* HSI framework for the SSI driver (linux-next, will probably go into 3.3)
+
* HSI framework needed by the SSI driver (mainline since 3.4-rc2)
 
* PhoNet for userspace communication (mainline since 2.6.28)
 
* PhoNet for userspace communication (mainline since 2.6.28)
 +
 +
Patches missing mainline to get modem support:
 +
 +
* [http://article.gmane.org/gmane.linux.kernel/1153543 HSI: omap_ssi: OMAP SSI driver]
 +
* [http://article.gmane.org/gmane.linux.ports.arm.omap/58798 HSI: omap_ssi: OMAP SSI kernel configuration]
 +
* board data for rx51, get e.g. from [http://meego.gitorious.org/meego-device-adaptation/n900_kernel/blobs/master/arch/arm/mach-omap2/board-rx51-peripherals.c meego's board code]

Revision as of 00:27, 3 April 2012

Status

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 N/A (kernel doesn't handle this, check 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 reveng Userspace
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 incomplete from sailus & old code 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
SSI McSAAB IMP? Modem Bus old code No No No No
* PowerVR SGX530 OpenGL ES and OpenVG acceleration No No No No No

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 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

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:

Patches missing mainline to get modem support: