Difference between revisions of "N900"
m (Proximity Sensor is connected as GPIO switch) |
m (twl4030-madc and omapdss DT support has been merged by torvalds) |
||
(226 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | == Status == | + | The [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] is a Linux based smartphone from Nokia, which has been released in November 2009. It's sold with [[Maemo]] using a patched 2.6.28 kernel (adding board support and lots of drivers). Since then board support has been added to the mainline kernel and most hardware can be used with a current kernel. Details can be seen in the table below. |
− | {| | + | |
− | ! | + | == Kernel Status == |
− | ! | + | |
− | ! | + | also see: [[N900/Changelog]] |
+ | |||
+ | Colors: | ||
+ | * Green = Available | ||
+ | * Yellow = Work in Progress (WIP), for docs: no documentation, but kernel code available | ||
+ | * Red = Missing | ||
+ | * Gray = Deprecated | ||
+ | * Cyan = Not Available (N/A) | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !rowspan="2"| Chip | ||
+ | !rowspan="2"| Driver name | ||
+ | !rowspan="2"| Purpose | ||
+ | !rowspan="2"| Docs | ||
+ | !colspan="2"| Driver | ||
+ | !colspan="2"| Board | ||
+ | !colspan="2"| Device Tree | ||
+ | !rowspan="2"| Firmware | ||
+ | |- | ||
+ | ! Patch !! Mainline | ||
+ | ! Patch !! Mainline | ||
+ | ! Driver !! DTS | ||
|- | |- | ||
− | | OMAP3430 || System-on-chip | + | | OMAP3430 || || System-on-chip |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime"| < 3.13 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| 3.13 |
|- | |- | ||
− | | * Cortex A8 || CPU | + | | * Cortex A8 || || CPU |
− | |bgcolor=" | + | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/index.html ARM infocenter] |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| Yes |
− | |||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |bgcolor="lime"| < 3.13 | ||
+ | |bgcolor="lime"| 3.13 | ||
+ | |- | ||
+ | | * * ARMv7 || || Instruction set | ||
+ | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html ARM infocenter] | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="cyan" colspan="4"| N/A | ||
+ | |- | ||
+ | | * * NEON || || Media Extensions | ||
+ | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Bcfjicfj.html ARM infocenter] | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="cyan" colspan="4"| N/A | ||
|- | |- | ||
− | | * * | + | | * * Thumb || || Code compression |
− | |bgcolor=" | + | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html ARM infocenter] |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| 2.6.12 |
− | + | |bgcolor="cyan" colspan="4"| N/A | |
− | |bgcolor="cyan" colspan=" | ||
|- | |- | ||
− | | * * | + | | * * Thumb2 || || Code compression |
− | | ? | + | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html ARM infocenter] |
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime" colspan="2"| [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4748a7240284b0f68bd47a66365c2cd561939830 3.13-rc1] | ||
+ | |bgcolor="lime"| [http://marc.info/?l=linux-omap&m=139302413627536&w=2 3.14-rc6] | ||
+ | |bgcolor="cyan"| N/A | ||
|- | |- | ||
− | | * * | + | | * * ThumbEE || || Instruction Set for JIT compilers |
− | |bgcolor=" | + | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/CIHBCDGA.html ARM infocenter] |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| Yes |
− | + | |bgcolor="cyan" colspan="4"| N/A (Userspace: Java VM?) | |
− | |bgcolor="cyan" colspan=" | ||
|- | |- | ||
− | | * * | + | | * * VFP || || Floating-point coprocessor |
− | | ? | + | |bgcolor="lime"| [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Chdjdaaj.html ARM infocenter] |
+ | |bgcolor="lime" colspan="2"| 2.6.12 | ||
+ | |bgcolor="cyan" colspan="4"| N/A | ||
|- | |- | ||
− | | * | + | | * M-Shield || omap-aes omap-sham || AES, SHA1 and MD5 acceleration [[#M-Shield|(needs updated X-Loader)]] |
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| 2.6.37-rc1 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| Yes |
+ | |bgcolor="lime"| 3.13 | ||
+ | |bgcolor="lime"| [http://marc.info/?l=linux-omap&m=138505988009856&w=2 3.13-rc3] | ||
+ | |- | ||
+ | | * IOMMU || omap-iommu || OMAP3 IO Memory Management Unit | ||
+ | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |bgcolor="lime" colspan="2"| 3.15 | ||
|- | |- | ||
− | | * | + | | * OMAP 3 Camera ISP || omap3-isp || OMAP3 Camera Chip Connection Bus |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
− | |bgcolor=" | + | |bgcolor="yellow" colspan="2"| 2.6.39-rc1 (broken) |
− | |||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |bgcolor="red" colspan="2"| No | ||
|- | |- | ||
− | | * OMAP | + | | * OMAP DSS || ??? || Video HW abstraction layer |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor=" | + | |bgcolor="cyan" colspan="2"| N/A |
− | | | + | |bgcolor="lime" colspan="2"| [http://marc.info/?l=linux-omap&m=139030195215292&w=2 3.15] |
− | | ? | ||
|- | |- | ||
− | | * OMAP | + | | * OMAP DRM || ??? || KMS video driver |
− | |bgcolor=" | + | |bgcolor="cyan"| N/A |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=tree;f=drivers/staging/omapdrm 3.3-rc1] |
− | |||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |bgcolor="red" colspan="2"| No | ||
|- | |- | ||
− | | * TMS320 C64x || DSP | + | | * TMS320 C64x || tidspbridge || DSP (also called IVA 2+) |
|bgcolor="lime"| [http://www.ti.com/lit/ug/spru395b/spru395b.pdf datasheet] | |bgcolor="lime"| [http://www.ti.com/lit/ug/spru395b/spru395b.pdf datasheet] | ||
− | | ? | + | |bgcolor="yellow" colspan="2"| Yes ([https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=930ba4a374b96560ef9fde2145cdc454a164ddcc broken since 3.13-rc2]) |
− | | | + | |bgcolor="cyan" colspan="2"| N/A (Userspace: gst-dsp) |
− | | | + | |bgcolor="red" colspan="2"| No |
− | | | ||
|- | |- | ||
− | | * | + | | * * || || DSP patches for Maemo/N900 |
− | | | + | |bgcolor="yellow"| code |
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="cyan" colspan="4"| N/A | ||
|- | |- | ||
− | | * PowerVR SGX530 || OpenGL ES and OpenVG acceleration | + | | * PowerVR SGX530 || pvrsrvkm omaplfb || OpenGL ES and OpenVG acceleration |
− | |bgcolor="red"| No | + | |bgcolor="yellow"| kernel code (userspace is closed) |
− | |bgcolor=" | + | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] |
− | |bgcolor="red"| No | + | |bgcolor="red"| No, not possible |
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | ||
+ | |bgcolor="red"| No, not possible | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
|- | |- | ||
− | | * OMAP | + | | * OMAP Watchdog || omap_wdt || Watchdog |
− | | ? | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
− | | | + | |bgcolor="lime" colspan="2"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=67c0f55468443ef8a1edc6ee92f9a92e4915be24 3.8] |
− | | | + | |bgcolor="lime" colspan="2"| Yes |
− | | | + | |bgcolor="lime"| < 3.13 |
+ | |bgcolor="lime"| 3.13 | ||
|- | |- | ||
− | | | + | | * OMAP MMC/SD/SDIO || omap_hsmmc || eMMC |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
− | | | + | |bgcolor="lime" colspan="2"| Yes |
− | | | + | |bgcolor="lime" colspan="2"| Yes |
− | | | + | |bgcolor="lime"| < 3.13 |
− | | | + | |bgcolor="lime"| [http://www.spinics.net/lists/arm-kernel/msg288286.html 3.13-rc3] |
|- | |- | ||
− | | | + | | * OMAP MMC/SD/SDIO || omap_hsmmc || SD/MMC card |
+ | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime"| < 3.13 | ||
+ | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/494 3.13] | ||
|- | |- | ||
− | | | + | | TI TWL4030 || twl-core || multifunction (I2C) |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/litv/pdf/swcu050g TPS65950 TRM] |
− | |bgcolor=" | + | |bgcolor="cyan" colspan="4"| N/A |
− | |bgcolor="lime"| | + | |bgcolor="lime"| < 3.13 |
− | | | + | |bgcolor="lime"| 3.13 |
− | | | ||
|- | |- | ||
− | | * || | + | | * || ??? || Audio |
− | |bgcolor=" | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | | | + | |bgcolor="lime" colspan="2"| [https://lkml.org/lkml/2013/10/22/520 3.13] |
− | | | ||
|- | |- | ||
− | | * || Vibrator | + | | * || twl4030-vibra || Vibrator |
− | |bgcolor=" | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 2.6.39-rc1 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| < 3.13 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/520 3.13] |
|- | |- | ||
− | | * || Real-Time Clock | + | | * || rtc-twl || Real-Time Clock |
− | |bgcolor=" | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="cyan" colspan="2"| N/A |
− | | | + | |bgcolor="lime"| < 3.13 |
− | | | + | |bgcolor="lime"| 3.13 |
|- | |- | ||
− | | | + | | * || twl4030_wdt || Watchdog |
− | |bgcolor="lime"| [http:// | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b2c4e4b2696287671723ef986f0db23cf4f52f15 3.8] |
− | + | |bgcolor="lime" colspan="2"| Yes | |
− | |bgcolor="lime"| | + | |bgcolor="lime"| < 3.13 |
− | |bgcolor=" | + | |bgcolor="lime"| 3.13 |
|- | |- | ||
− | | | + | | * || twl4030_keypad || Keypad |
− | |bgcolor=" | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 2.6.33 |
− | |bgcolor=" | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/11/30/122 3.14] |
− | |bgcolor=" | + | |bgcolor="lime"| 3.15 |
|- | |- | ||
− | | | + | | * || twl4030_pwrbutton || Power Button |
− | |bgcolor=" | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor=" | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/11/8/458 3.14] |
− | |bgcolor=" | + | |bgcolor="lime"| 3.14 |
|- | |- | ||
− | | | + | | * || twl4030_madc || Analog Digital Converter |
− | |bgcolor=" | + | |bgcolor="lime"| part of TI TWL4030 |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2014/3/15/155 3.15] |
− | |bgcolor=" | + | |bgcolor="yellow"| [http://marc.info/?l=linux-omap&m=139518444704345&w=2 PATCHv1 (2014-03-18)] |
|- | |- | ||
− | | GPIO || Camera button | + | | GPIO || gpio-keys || Camera button |
|bgcolor="cyan"| N/A | |bgcolor="cyan"| N/A | ||
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| Yes |
− | |bgcolor="lime"| | + | |bgcolor="lime"| < 3.13 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/509 3.13] |
|- | |- | ||
− | | Taos TSL2563 || Ambient light sensor | + | | Taos TSL2563 || tsl2563 || Ambient light sensor |
|bgcolor="lime"| [http://www.taosinc.com/getfile.aspx?type=press&file=tsl2562-e40.pdf datasheet] | |bgcolor="lime"| [http://www.taosinc.com/getfile.aspx?type=press&file=tsl2562-e40.pdf datasheet] | ||
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| 2.6.33 |
− | + | |bgcolor="lime" colspan="2"| Yes | |
− | |bgcolor="lime"| Yes | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/11/23/47 3.14] |
− | |bgcolor="lime"| | + | |bgcolor="lime"| 3.15 |
|- | |- | ||
− | | LP5523 || LED | + | | LP5523 || leds-lp5523 || LED driver |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/product/LP5523 documentation] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 2.6.37-rc2 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 3.1-rc1 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/497 3.13] |
− | |bgcolor="lime"| 3. | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/166 3.13] |
|- | |- | ||
− | | Sony ACX565AKM || LCD panel | + | | Sony ACX565AKM || panel-sony-acx565akm || LCD panel |
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| 2.6.35 |
− | + | |bgcolor="lime" colspan="2"| 2.6.36 | |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [http://marc.info/?l=linux-omap&m=139030195215292&w=2 3.15] |
− | |bgcolor="lime"| 2. | ||
|- | |- | ||
− | | TI TSC2005 || Touchscreen controller | + | | TI TSC2005 || tsc2005 || Touchscreen controller |
|bgcolor="lime"| [http://www.ti.com/lit/gpn/tsc2005 datasheet] | |bgcolor="lime"| [http://www.ti.com/lit/gpn/tsc2005 datasheet] | ||
− | |bgcolor="lime"| 2.6.39-rc1 | + | |bgcolor="lime" colspan="2"| 2.6.39-rc1 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=3dad5356aa47097cf67027cf0a07298b4f5baef6 3.3-rc1] |
− | |bgcolor=" | + | |bgcolor="yellow"| [https://lkml.org/lkml/2014/4/5/103 PATCHv2 (2014-04-06)] |
|bgcolor="red"| No | |bgcolor="red"| No | ||
|- | |- | ||
− | | WL1251 || 802.11b/g WiFi | + | | WL1251 || wl1251_spi wl1251 || 802.11b/g WiFi |
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime" colspan="2"| 2.6.31 | ||
+ | |bgcolor="lime" colspan="2"| 2009-11-22 | ||
+ | |bgcolor="lime"| [https://lkml.org/lkml/2013/12/5/649 3.15-rc1] | ||
+ | |bgcolor="yellow"| [http://www.spinics.net/lists/linux-omap/msg104474.html PATCHv1 (2014-03-13)] | ||
+ | |bgcolor="lime"| [https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/ti-connectivity wl1251-fw.bin wl1251-nvs.bin] | ||
+ | |- | ||
+ | | * || || Packet injection support | ||
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| [https://lkml.org/lkml/2013/10/26/148 3.14] |
− | + | |bgcolor="cyan" colspan="4"| N/A | |
− | |bgcolor=" | ||
− | |||
|- | |- | ||
− | | | + | | Si4713 || radio-si4713 si4713-i2c || FM transmitter |
− | |bgcolor="lime"| [http://www. | + | |bgcolor="lime"| [http://www.silabs.com/Support%20Documents/TechnicalDocs/AN332.pdf datasheet] |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| 2.6.32 |
− | + | |bgcolor="lime" colspan="2"| Yes | |
− | |bgcolor="lime"| Yes | + | |bgcolor="yellow"| [https://lkml.org/lkml/2014/4/6/29 RFC (2014-04-06)] |
|bgcolor="red"| No | |bgcolor="red"| No | ||
|- | |- | ||
− | | | + | | TPA6130a2 || snd-soc-tpa6130a2 || Headphone amplifier |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/lit/gpn/tpa6130a2 datasheet] |
+ | |bgcolor="lime" colspan="2"| 2.6.33 | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime"| [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f95a48834cb9c581eec952215666a323136f339f 3.13-rc1] | ||
+ | |bgcolor="lime"| 3.13 | ||
+ | |- | ||
+ | | TLV320AIC3X || snd-soc-tlv320aic3x || Digital audio data serial | ||
+ | |bgcolor="lime"| [http://www.ti.com/product/tlv320aic33#technicaldocuments ti.com] | ||
+ | |bgcolor="lime" colspan="2"| 2.6.25 | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/500 3.13] | ||
+ | |bgcolor="lime"| 3.13 | ||
+ | |- | ||
+ | | Board || snd-soc-rx51 || Sound SoC Wiring | ||
+ | |bgcolor="cyan"| N/A | ||
+ | |bgcolor="lime" colspan="2"| [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/sound/soc/omap/rx51.c Yes] | ||
+ | |bgcolor="lime"| [https://lkml.org/lkml/2013/1/19/170 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="yellow"| [https://lkml.org/lkml/2014/4/5/92 PATCH (2014-04-06)] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |- | ||
+ | | * || || All sound alsa switches and channels | ||
+ | |bgcolor="yellow"| In maemo fremantle kernel | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="cyan" colspan="4"| N/A | ||
+ | |- | ||
+ | | GPIO || gpio-keys || Proximity sensor | ||
+ | |bgcolor="cyan"| N/A | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime" colspan="2"| Yes | ||
+ | |bgcolor="lime"| < 3.13 | ||
+ | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/509 3.13] | ||
|- | |- | ||
− | | | + | | Phonet || phonet || Modem protocol |
− | |bgcolor="yellow"| | + | |bgcolor="yellow"| code |
− | |bgcolor=" | + | |bgcolor="lime" colspan="2"| 2.6.28 |
− | + | |bgcolor="cyan" colspan="4"| N/A | |
− | |bgcolor=" | ||
− | |||
|- | |- | ||
− | | | + | | HSI || hsi || Modem Bus Framework |
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b1a808ff436343956a6ae63178ea1810c5e5a3a1 3.4-rc2] |
− | + | |bgcolor="cyan" colspan="4"| N/A | |
− | | | ||
− | | | ||
|- | |- | ||
− | | | + | | Omap SSI || omap-ssi || Synchronous Serial Interface |
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="yellow" colspan="2"| [https://lkml.org/lkml/2014/3/28/492 PATCHv3 (2014-03-28)] | ||
+ | |bgcolor="gray" colspan="2"| No | ||
+ | |bgcolor="yellow"| [https://lkml.org/lkml/2014/3/28/492 PATCHv3 (2014-03-28)] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |- | ||
+ | | Modem || n900-modem || modem PM etc. | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="yellow" colspan="2"| [https://lkml.org/lkml/2014/3/28/492 PATCHv3 (2014-04-28)] | ||
+ | |bgcolor="gray" colspan="2"| No | ||
+ | |bgcolor="yellow"| [https://lkml.org/lkml/2014/3/28/492 PATCHv3 (2014-04-28)] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |- | ||
+ | | * ssi-protocol || ssi_protocol || HSI client driver used by N900 | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="yellow" colspan="2"| [https://lkml.org/lkml/2014/3/28/492 PATCHv3 (2014-03-28)] | ||
+ | |bgcolor="gray" colspan="2"| No | ||
+ | |bgcolor="yellow"| [https://lkml.org/lkml/2014/3/28/492 PATCHv3 (2014-03-28)] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |- | ||
+ | | * cmt_speech || cmt_speech || HSI client driver used by N900 | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900/source/d5da1f5357345ad270a491ce285c78dcf901a7ff:drivers/hsi/clients/cmt_speech.c Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="gray" colspan="2"| No | ||
+ | |bgcolor="red" colspan="2"| No | ||
+ | |- | ||
+ | | * TI NaviLink NL5350 || || GPS (via Phonet modem protocol) | ||
+ | |bgcolor="yellow"| [http://wiki.maemo.org/N900_Hardware_GPS reveng] | ||
+ | |bgcolor="cyan" colspan="6"| Userspace [http://luke.dashjr.org/tmp/code/gps2.c gps2.c] | ||
+ | |- | ||
+ | | * || || A-GPS | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="cyan" colspan="6"| Client SUPL application: http://www.tajuma.com/supl/index.html | ||
|- | |- | ||
− | | | + | | rx51_battery || rx51_battery || Battery design capacity, battery temperature |
− | |bgcolor="lime"| [ | + | |bgcolor="yellow"| code |
− | |bgcolor="lime" | + | |bgcolor="lime" colspan="2"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=04930baf28f08cd275e4afbf5a335b42335705df 3.8] |
− | + | |bgcolor="lime" colspan="2"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=7605c0b0d384ec98f80abc6ac2148a6cd993026c 3.8] | |
− | |bgcolor=" | + | |bgcolor="yellow"|[https://lkml.org/lkml/2014/3/1/122 PATCHv2 (2014-03-01)] |
− | |bgcolor=" | + | |bgcolor="red"| No |
|- | |- | ||
− | | | + | | bq27200 || bq27x00_battery || Battery monitor chip |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/product/bq27200 documentation] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 2.6.28 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [https://lkml.org/lkml/2011/11/25/190 3.3-rc1] |
− | |bgcolor="lime"| | + | |bgcolor="lime"| < 3.13 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/498 3.13] |
|- | |- | ||
− | | | + | | isp1707a || isp1704_charger || USB charger detector |
− | |bgcolor=" | + | |bgcolor="lime"| [http://pdf.datasheetz.com/NXP/ISP1704A_1/ISP1704A_1.pdf datasheet] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 2.6.37-rc1 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| 2011-04-20 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/11/30/189 3.14] |
− | |bgcolor="lime"| | + | |bgcolor="lime"| 3.15 |
|- | |- | ||
− | | | + | | bq24150a || bq2415x_charger || Battery charger |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/product/bq24150a documentation] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=0bc98cc6155205b615a9d29a2d54d1b839521c04 3.8] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [https://lkml.org/lkml/2013/11/19/106 3.14] |
− | | ? | + | |bgcolor="lime"| [http://marc.info/?l=linux-omap&m=138531187226431&w=2 3.14] |
− | | | + | |bgcolor="lime"| 3.15 |
|- | |- | ||
− | | | + | | OneNAND || ??? || Flash memory |
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime"| Yes | + | |bgcolor="lime" colspan="2"| 2.6.15 |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| Yes |
− | | | + | |bgcolor="lime"| < 3.13 |
− | | | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/10/22/496 3.13] |
|- | |- | ||
− | | | + | | LIS302DL || lis3lv02d_i2c lis3lv02d || Accelerometers |
− | |bgcolor="yellow"| | + | |bgcolor="lime"| [http://www.st.com/stonline/products/literature/ds/12726.pdf datasheet] |
+ | |bgcolor="lime" colspan="2"| 2.6.32 | ||
+ | |bgcolor="lime" colspan="2"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=3b5112011508c3d92938438db506c6794e8a61a5 3.5-rc1] | ||
+ | |bgcolor="yellow"| [http://www.spinics.net/lists/devicetree/msg15747.html WIP (2013-12-13)] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |- | ||
+ | | ADP 1653 || adp1653 || Flash Torch | ||
+ | |bgcolor="lime"| [http://www.analog.com/static/imported-files/data_sheets/ADP1653.pdf datasheet] | ||
+ | |bgcolor="lime" colspan="2"| 3.1-rc1 | ||
+ | |bgcolor="yellow" colspan="2"| [https://lkml.org/lkml/2013/2/17/61 WIP] | ||
+ | |bgcolor="red" colspan="2"| No, depends on omap3isp | ||
+ | |- | ||
+ | | STM VS6555 || smiapp || Front Webcam | ||
+ | |bgcolor="lime"| [http://natisbad.org/N900/ref/VS6555.pdf datasheet] | ||
+ | |bgcolor="yellow" colspan="2"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=ccfc97bdb5ae8b8edc55169ac6924e08449836ac 3.4-rc4] (broken) | ||
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="red" colspan="2"| No, depends on omap3isp | ||
+ | |bgcolor="lime"| No firmware needed | ||
+ | |- | ||
+ | | ET8EK8 || et8ek8 || Main Camera | ||
+ | |bgcolor="lime"| [http://www.retiisi.org.uk/~sakke/foo/SMIA95_AF_camera%20module_APL_090511.doc datasheet] | ||
+ | |bgcolor="yellow"| [https://gitorious.org/linux-n900/linux-n900/source/8a80ef98885813ab38672f80b2f9548f969963a1:drivers/media/i2c/smia/et8ek8.c Yes] (broken) | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="red" colspan="2"| No, depends on omap3isp | ||
+ | |bgcolor="lime"| Firmware was integrated into driver (it was only data structure) | ||
|- | |- | ||
− | | | + | | AD5820 || ad5820 || Autofocus |
− | |bgcolor=" | + | |bgcolor="lime"| [http://natisbad.org/N900/ref/AD5821.pdf datasheet for AD5821, which may be similar] |
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900/commit/661caf226fee7a8f54ac3559787f7474b4917f82 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="red" colspan="2"| No, depends on omap3isp | ||
+ | |- | ||
+ | | BCM2048 || hci_h4p || Bluetooth | ||
+ | |bgcolor="yellow"| old code | ||
+ | |bgcolor="greenyellow" colspan="2"| [https://lkml.org/lkml/2014/1/21/401 3.15 (staging)] | ||
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900/commit/6aef8b21ec95e61f89cd372326d8adafafe9e244 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="red" colspan="2"| No | ||
+ | |bgcolor="yellow"| [https://api.merproject.org/public/source/nemo:devel:hw:ti:omap3:n900/bcm-bt-firmware/bcm-bt-firmware-0.21rc3.tar.bz2 bcmfw.bin] | ||
+ | |- | ||
+ | | * || radio-bcm2048 || FM/RDS receiver | ||
+ | |bgcolor="yellow"| old code | ||
+ | |bgcolor="greenyellow" colspan="2"| [https://www.linuxtv.org/patch/20393/ 3.14 (staging)] | ||
+ | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900/commit/61455fd64f72297f63189122d3746435366e1851 Yes] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="red" colspan="2"| No | ||
|- | |- | ||
− | | | + | | IR Diode on PWM GPIO || ir-rx51 || Infrared/CIR transmitter |
− | |bgcolor=" | + | |bgcolor="cyan"| N/A |
− | |bgcolor=" | + | |bgcolor="yellow" colspan="2"| [http://www.spinics.net/lists/linux-omap/msg75258.html 3.7-rc1] [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/media/rc/Kconfig?id=a62a6e98c370ccca37d353a5f763b532411a4c14 (broken since v3.8-rc4)] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [http://www.spinics.net/lists/linux-omap/msg75257.html 3.7-rc1] |
− | |bgcolor=" | + | |bgcolor="red" colspan="2"| No |
− | |||
|- | |- | ||
− | | | + | | omap3-rom-rng || omap3-rom-rng || OMAP3 ROM Random Number Generator support |
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1c6b7c2108bdb0c6a17044830028a649dbaca913 3.13-rc2] |
− | |bgcolor="lime"| | + | |bgcolor="lime" colspan="2"| [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d2065e2b5bb3ec986f0f3ba044a81a136767d0b4 3.13-rc1] |
− | |bgcolor=" | + | |bgcolor="red" colspan="2"| No |
− | | | + | |} |
+ | |||
+ | == Kernel git repository for N900 == | ||
+ | |||
+ | There is git repository for upstream linux kernel with all N900 patches. | ||
+ | |||
+ | https://gitorious.org/linux-n900/linux-n900 | ||
+ | |||
+ | This git repository is used for development. All other git repositories on internet are older and does not contains all patches. | ||
+ | |||
+ | == Kernel Compilation == | ||
+ | |||
+ | export ARCH=arm | ||
+ | export CROSS_COMPILE=arm-linux-gnueabi- | ||
+ | make rx51_defconfig | ||
+ | make zImage modules | ||
+ | |||
+ | == DT Kernel Compilation == | ||
+ | |||
+ | Make sure this is enabled in the kernel configuration: | ||
+ | |||
+ | CONFIG_ARM_APPENDED_DTB=y | ||
+ | CONFIG_ARM_ATAG_DTB_COMPAT=y | ||
+ | CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND=y | ||
+ | CONFIG_PINCTRL_SINGLE=y | ||
+ | CONFIG_REGULATOR_TWL4030=y | ||
+ | CONFIG_REGULATOR_FIXED_VOLTAGE=y | ||
+ | |||
+ | Compile Kernel, Modules and DTB file: | ||
+ | |||
+ | export ARCH=arm | ||
+ | export CROSS_COMPILE=arm-linux-gnueabi- | ||
+ | make zImage | ||
+ | make modules | ||
+ | make omap3-n900.dtb | ||
+ | |||
+ | Create combined kernel image by appending the DTB file: | ||
+ | |||
+ | cat arch/arm/boot/zImage arch/arm/boot/dts/omap3-n900.dtb > zImage | ||
+ | |||
+ | Install Modules: | ||
+ | |||
+ | make INSTALL_MOD_PATH=/mnt/target modules_install | ||
+ | |||
+ | == Modem Status in Mainline Kernel == | ||
+ | |||
+ | Missing drivers to have a working modem in the mainline kernel: | ||
+ | * omap-ssi - the modem is attached via ssi, this driver adds support for the ssi hardware of the omap processor. | ||
+ | * ssi-protocol - this adds support for the protocol used to to communicate with the modem (AKA McSAAB). | ||
+ | * cmt-speech - this adds support for the protocol used to exchange peech data with the modem | ||
+ | * cmt - this driver handles the modem's GPIO pins and is needed by ssi-protocol and cmt-speech. | ||
+ | |||
+ | [[User:Sre|sre]] is currently working on getting the modem supported in the mainline kernel. | ||
+ | |||
+ | == Bluetooth Status in Mainline Kernel == | ||
+ | |||
+ | This is the TODO list to get the hci_h4p driver into the mainline kernel: | ||
+ | |||
+ | Use hdev->setup callback for firmware loading and initial setup | ||
+ | Note 1: Since they are all HCI commands anyway, you can nicely use the sync interface we added for that | ||
+ | Note 2: Example: btusb.c | ||
+ | Review MAC address setup (driver, which loads config from eeprom?) | ||
+ | https://lkml.org/lkml/2013/10/24/375 | ||
+ | |||
+ | == M-Shield == | ||
+ | |||
+ | For M-Shield AES, SHA1 and MD5 acceleration is needed updated signed bootloader X-Loader. Without it M-Shield crashing. | ||
+ | |||
+ | More info on: http://maemo.org/community/maemo-developers/n900_aes_and_sha1-md5_hw_acceleration_drivers/ | ||
+ | |||
+ | == U-Boot == | ||
+ | |||
+ | Instead of booting the kernel directly from NOLO (which restricts you to using exactly one kernel), U-Boot can be used as second bootloader. The Maemo kernel can be appended to U-Boot to keep the existing Maemo installation working (U-Boot must be located at the location of the Maemo kernel). The resulting boot process will end up like this: NOLO -> U-Boot -> Kernel. | ||
+ | |||
+ | Pali Rohár has been working on getting the N900 support into the mainline U-Boot: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !description | ||
+ | !date | ||
+ | !status | ||
|- | |- | ||
− | | | + | |Board Support |
− | | | + | |2012-10-29 |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ed407be53e1e8f0be90d5723ca71ab1c37e2eed8 mainline] |
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | |Bootmenu Support |
− | + | |2013-03-07 | |
− | |bgcolor="lime"| | + | |bgcolor="lime"| [http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=d999398822c6d57335677bc4ecc6bea4a569492f mainline] |
− | |||
− | |||
|} | |} | ||
− | == | + | Now all N900 patches are in upstream U-Boot mainline project (part of U-Boot 2013.04). Source code is on http://git.denx.de/?p=u-boot.git |
+ | |||
+ | Debian packaging for Maemo is in this git repository: https://gitorious.org/u-boot-shr/u-boot (branch maemo). | ||
+ | |||
+ | There's also a thread on talk.maemo.org, where the latest released & tested version can be found: http://talk.maemo.org/showthread.php?t=81613 | ||
+ | |||
+ | More info about U-Boot on N900 is in [http://talk.maemo.org/showpost.php?p=1150740&postcount=1 first post]. | ||
+ | |||
+ | == Flashing == | ||
+ | |||
+ | There is an open source flasher application called 0xFFFF, which is working with the Nokia N900. | ||
− | + | * Git repository is on: https://gitorious.org/0xffff/0xffff | |
+ | * Packages are available in Debian & Ubuntu (apt-get install 0xffff) | ||
+ | * Gentoo Ebuild is available in ixit overlay (emerge -av sys-apps/0xffff::ixit ) |
Revision as of 13:44, 7 April 2014
The Nokia N900 is a Linux based smartphone from Nokia, which has been released in November 2009. It's sold with Maemo using a patched 2.6.28 kernel (adding board support and lots of drivers). Since then board support has been added to the mainline kernel and most hardware can be used with a current kernel. Details can be seen in the table below.
Contents
Kernel Status
also see: N900/Changelog
Colors:
- Green = Available
- Yellow = Work in Progress (WIP), for docs: no documentation, but kernel code available
- Red = Missing
- Gray = Deprecated
- Cyan = Not Available (N/A)
Chip | Driver name | Purpose | Docs | Driver | Board | Device Tree | Firmware | |||
---|---|---|---|---|---|---|---|---|---|---|
Patch | Mainline | Patch | Mainline | Driver | DTS | |||||
OMAP3430 | System-on-chip | OMAP34xx TRM | Yes | Yes | < 3.13 | 3.13 | ||||
* Cortex A8 | CPU | ARM infocenter | Yes | N/A | < 3.13 | 3.13 | ||||
* * ARMv7 | Instruction set | ARM infocenter | Yes | N/A | ||||||
* * NEON | Media Extensions | ARM infocenter | Yes | N/A | ||||||
* * Thumb | Code compression | ARM infocenter | 2.6.12 | N/A | ||||||
* * Thumb2 | Code compression | ARM infocenter | Yes | 3.13-rc1 | 3.14-rc6 | N/A | ||||
* * ThumbEE | Instruction Set for JIT compilers | ARM infocenter | Yes | N/A (Userspace: Java VM?) | ||||||
* * VFP | Floating-point coprocessor | ARM infocenter | 2.6.12 | N/A | ||||||
* M-Shield | omap-aes omap-sham | AES, SHA1 and MD5 acceleration (needs updated X-Loader) | code | 2.6.37-rc1 | Yes | 3.13 | 3.13-rc3 | |||
* IOMMU | omap-iommu | OMAP3 IO Memory Management Unit | OMAP34xx TRM | Yes | N/A | 3.15 | ||||
* OMAP 3 Camera ISP | omap3-isp | OMAP3 Camera Chip Connection Bus | OMAP34xx TRM | 2.6.39-rc1 (broken) | N/A | No | ||||
* OMAP DSS | ??? | Video HW abstraction layer | OMAP34xx TRM | Yes | N/A | 3.15 | ||||
* OMAP DRM | ??? | KMS video driver | N/A | 3.3-rc1 | N/A | No | ||||
* TMS320 C64x | tidspbridge | DSP (also called IVA 2+) | datasheet | Yes (broken since 3.13-rc2) | N/A (Userspace: gst-dsp) | No | ||||
* * | DSP patches for Maemo/N900 | code | Yes | No | N/A | |||||
* PowerVR SGX530 | pvrsrvkm omaplfb | OpenGL ES and OpenVG acceleration | kernel code (userspace is closed) | Yes | No, not possible | Yes | No, not possible | No | No | |
* OMAP Watchdog | omap_wdt | Watchdog | OMAP34xx TRM | 3.8 | Yes | < 3.13 | 3.13 | |||
* OMAP MMC/SD/SDIO | omap_hsmmc | eMMC | OMAP34xx TRM | Yes | Yes | < 3.13 | 3.13-rc3 | |||
* OMAP MMC/SD/SDIO | omap_hsmmc | SD/MMC card | OMAP34xx TRM | Yes | Yes | < 3.13 | 3.13 | |||
TI TWL4030 | twl-core | multifunction (I2C) | TPS65950 TRM | N/A | < 3.13 | 3.13 | ||||
* | ??? | Audio | part of TI TWL4030 | Yes | Yes | 3.13 | ||||
* | twl4030-vibra | Vibrator | part of TI TWL4030 | Yes | 2.6.39-rc1 | < 3.13 | 3.13 | |||
* | rtc-twl | Real-Time Clock | part of TI TWL4030 | Yes | N/A | < 3.13 | 3.13 | |||
* | twl4030_wdt | Watchdog | part of TI TWL4030 | 3.8 | Yes | < 3.13 | 3.13 | |||
* | twl4030_keypad | Keypad | part of TI TWL4030 | 2.6.33 | Yes | 3.14 | 3.15 | |||
* | twl4030_pwrbutton | Power Button | part of TI TWL4030 | Yes | Yes | 3.14 | 3.14 | |||
* | twl4030_madc | Analog Digital Converter | part of TI TWL4030 | Yes | Yes | 3.15 | PATCHv1 (2014-03-18) | |||
GPIO | gpio-keys | Camera button | N/A | Yes | Yes | < 3.13 | 3.13 | |||
Taos TSL2563 | tsl2563 | Ambient light sensor | datasheet | 2.6.33 | Yes | 3.14 | 3.15 | |||
LP5523 | leds-lp5523 | LED driver | documentation | 2.6.37-rc2 | 3.1-rc1 | 3.13 | 3.13 | |||
Sony ACX565AKM | panel-sony-acx565akm | LCD panel | code | 2.6.35 | 2.6.36 | 3.15 | ||||
TI TSC2005 | tsc2005 | Touchscreen controller | datasheet | 2.6.39-rc1 | 3.3-rc1 | PATCHv2 (2014-04-06) | No | |||
WL1251 | wl1251_spi wl1251 | 802.11b/g WiFi | code | 2.6.31 | 2009-11-22 | 3.15-rc1 | PATCHv1 (2014-03-13) | wl1251-fw.bin wl1251-nvs.bin | ||
* | Packet injection support | code | 3.14 | N/A | ||||||
Si4713 | radio-si4713 si4713-i2c | FM transmitter | datasheet | 2.6.32 | Yes | RFC (2014-04-06) | No | |||
TPA6130a2 | snd-soc-tpa6130a2 | Headphone amplifier | datasheet | 2.6.33 | Yes | 3.13-rc1 | 3.13 | |||
TLV320AIC3X | snd-soc-tlv320aic3x | Digital audio data serial | ti.com | 2.6.25 | Yes | 3.13 | 3.13 | |||
Board | snd-soc-rx51 | Sound SoC Wiring | N/A | Yes | Yes | No | PATCH (2014-04-06) | No | ||
* | All sound alsa switches and channels | In maemo fremantle kernel | No | No | N/A | |||||
GPIO | gpio-keys | Proximity sensor | N/A | Yes | Yes | < 3.13 | 3.13 | |||
Phonet | phonet | Modem protocol | code | 2.6.28 | N/A | |||||
HSI | hsi | Modem Bus Framework | code | 3.4-rc2 | N/A | |||||
Omap SSI | omap-ssi | Synchronous Serial Interface | code | PATCHv3 (2014-03-28) | No | PATCHv3 (2014-03-28) | No | |||
Modem | n900-modem | modem PM etc. | code | PATCHv3 (2014-04-28) | No | PATCHv3 (2014-04-28) | No | |||
* ssi-protocol | ssi_protocol | HSI client driver used by N900 | code | PATCHv3 (2014-03-28) | No | PATCHv3 (2014-03-28) | No | |||
* cmt_speech | cmt_speech | HSI client driver used by N900 | code | Yes | No | No | No | |||
* TI NaviLink NL5350 | GPS (via Phonet modem protocol) | reveng | Userspace gps2.c | |||||||
* | A-GPS | No | Client SUPL application: http://www.tajuma.com/supl/index.html | |||||||
rx51_battery | rx51_battery | Battery design capacity, battery temperature | code | 3.8 | 3.8 | PATCHv2 (2014-03-01) | No | |||
bq27200 | bq27x00_battery | Battery monitor chip | documentation | 2.6.28 | 3.3-rc1 | < 3.13 | 3.13 | |||
isp1707a | isp1704_charger | USB charger detector | datasheet | 2.6.37-rc1 | 2011-04-20 | 3.14 | 3.15 | |||
bq24150a | bq2415x_charger | Battery charger | documentation | 3.8 | 3.14 | 3.14 | 3.15 | |||
OneNAND | ??? | Flash memory | code | 2.6.15 | Yes | < 3.13 | 3.13 | |||
LIS302DL | lis3lv02d_i2c lis3lv02d | Accelerometers | datasheet | 2.6.32 | 3.5-rc1 | WIP (2013-12-13) | No | |||
ADP 1653 | adp1653 | Flash Torch | datasheet | 3.1-rc1 | WIP | No, depends on omap3isp | ||||
STM VS6555 | smiapp | Front Webcam | datasheet | 3.4-rc4 (broken) | Yes | No | No, depends on omap3isp | No firmware needed | ||
ET8EK8 | et8ek8 | Main Camera | datasheet | Yes (broken) | No | Yes | No | No, depends on omap3isp | Firmware was integrated into driver (it was only data structure) | |
AD5820 | ad5820 | Autofocus | datasheet for AD5821, which may be similar | Yes | No | Yes | No | No, depends on omap3isp | ||
BCM2048 | hci_h4p | Bluetooth | old code | 3.15 (staging) | Yes | No | No | bcmfw.bin | ||
* | radio-bcm2048 | FM/RDS receiver | old code | 3.14 (staging) | Yes | No | No | |||
IR Diode on PWM GPIO | ir-rx51 | Infrared/CIR transmitter | N/A | 3.7-rc1 (broken since v3.8-rc4) | 3.7-rc1 | No | ||||
omap3-rom-rng | omap3-rom-rng | OMAP3 ROM Random Number Generator support | code | 3.13-rc2 | 3.13-rc1 | No |
Kernel git repository for N900
There is git repository for upstream linux kernel with all N900 patches.
https://gitorious.org/linux-n900/linux-n900
This git repository is used for development. All other git repositories on internet are older and does not contains all patches.
Kernel Compilation
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- make rx51_defconfig make zImage modules
DT Kernel Compilation
Make sure this is enabled in the kernel configuration:
CONFIG_ARM_APPENDED_DTB=y CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND=y CONFIG_PINCTRL_SINGLE=y CONFIG_REGULATOR_TWL4030=y CONFIG_REGULATOR_FIXED_VOLTAGE=y
Compile Kernel, Modules and DTB file:
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- make zImage make modules make omap3-n900.dtb
Create combined kernel image by appending the DTB file:
cat arch/arm/boot/zImage arch/arm/boot/dts/omap3-n900.dtb > zImage
Install Modules:
make INSTALL_MOD_PATH=/mnt/target modules_install
Modem Status in Mainline Kernel
Missing drivers to have a working modem in the mainline kernel:
- omap-ssi - the modem is attached via ssi, this driver adds support for the ssi hardware of the omap processor.
- ssi-protocol - this adds support for the protocol used to to communicate with the modem (AKA McSAAB).
- cmt-speech - this adds support for the protocol used to exchange peech data with the modem
- cmt - this driver handles the modem's GPIO pins and is needed by ssi-protocol and cmt-speech.
sre is currently working on getting the modem supported in the mainline kernel.
Bluetooth Status in Mainline Kernel
This is the TODO list to get the hci_h4p driver into the mainline kernel:
Use hdev->setup callback for firmware loading and initial setup Note 1: Since they are all HCI commands anyway, you can nicely use the sync interface we added for that Note 2: Example: btusb.c Review MAC address setup (driver, which loads config from eeprom?) https://lkml.org/lkml/2013/10/24/375
M-Shield
For M-Shield AES, SHA1 and MD5 acceleration is needed updated signed bootloader X-Loader. Without it M-Shield crashing.
More info on: http://maemo.org/community/maemo-developers/n900_aes_and_sha1-md5_hw_acceleration_drivers/
U-Boot
Instead of booting the kernel directly from NOLO (which restricts you to using exactly one kernel), U-Boot can be used as second bootloader. The Maemo kernel can be appended to U-Boot to keep the existing Maemo installation working (U-Boot must be located at the location of the Maemo kernel). The resulting boot process will end up like this: NOLO -> U-Boot -> Kernel.
Pali Rohár has been working on getting the N900 support into the mainline U-Boot:
description | date | status |
---|---|---|
Board Support | 2012-10-29 | mainline |
Bootmenu Support | 2013-03-07 | mainline |
Now all N900 patches are in upstream U-Boot mainline project (part of U-Boot 2013.04). Source code is on http://git.denx.de/?p=u-boot.git
Debian packaging for Maemo is in this git repository: https://gitorious.org/u-boot-shr/u-boot (branch maemo).
There's also a thread on talk.maemo.org, where the latest released & tested version can be found: http://talk.maemo.org/showthread.php?t=81613
More info about U-Boot on N900 is in first post.
Flashing
There is an open source flasher application called 0xFFFF, which is working with the Nokia N900.
- Git repository is on: https://gitorious.org/0xffff/0xffff
- Packages are available in Debian & Ubuntu (apt-get install 0xffff)
- Gentoo Ebuild is available in ixit overlay (emerge -av sys-apps/0xffff::ixit )