N950
Contents
N950
The Nokia N950 is a Linux based smartphone from Nokia, which has been released in July 2011 as developer device.
Custom Kernel Trees
Kernel Status
This table represents the mainline kernel status. It's expected, that features marked as missing are available in the N950 specific kernel tree from Nokia. The Hardware column contains the Chip/IP-Core name and Description is a human readable description for the hardware (as short as possible). The Docs column describes the documentation status and, if available, a link to the datasheet. The driver column gives the current driver status (green = available in mainline, yellow + link = patch on mailinglists, yellow + ? = status unknown, red = not available in mainline) and the DT column gives the current device tree file status (entry in arch/arm/boot/omap3-n950.dts) with the same color usage. Last but not least the FW column gives hints about any required firmwares.
Hardware | Description | Docs | Driver | DT | FW |
---|---|---|---|---|---|
OMAP3630 | SoC | OMAP3630 TRM | Yes | Yes | N/A |
↳ Cortex A8 | CPU | ARM infocenter | Yes | Yes | N/A |
↪ Cortex A8 - 1GHz Support | CPU | N/A | Yes | PATCHv1 (2016-03-13) | N/A |
↳ PowerVR SGX530 | GPU | No | No | No | N/A |
↳ TMS320C64x | DSP | datasheet | No | No | N/A |
↳ ISP | Image Signal Processor | see OMAP3630 TRM | Yes | Yes | N/A |
↳ MUSB | USB Interface | see OMAP3630 TRM | Yes | Yes | N/A |
Memory (1GB) | - | - | Yes | N/A | |
GPMC OneNAND | Storage (512MB) | Code | Yes | Yes | N/A |
eMMC | Storage (8GB) | N/A | Yes | Yes | N/A |
TWL5031 | Analog Companion Chip | Code | Yes | Yes | N/A |
↳ Audio | Audio Codec | Code | Yes | No | N/A |
↳ Vibrator | Vibrator | Code | Yes | PATCHv1 (2016-03-13) | N/A |
↳ Keypad | QWERTY Keyboard | Code | Yes | PATCHv1 (2016-03-13) | N/A |
AU Optronics H397VN01 (AKA Nokia Himalaya) | 4" FWVGA TFT (MIPI DSI) | Code | PATCHv1 (2016-03-08) | N/A | |
Atmel mXT | Capacitive Touchscreen | Code | Yes | No | N/A |
BQ24153A | Battery Charging (6b@i2c-2) | ti.com, talk.maemo.org | Yes | No | N/A |
bq27521 / sn27521 | Battery fuel gauge (55@i2c-2) | blog | No | No | N/A |
LP5523 | RGB-LED | Code | Yes | No | N/A |
lis3lv02 | Accelerometer | Code | Yes | PATCHv1 (2016-03-13) | N/A |
ak8974 | Magnetometer | Code | old driver, iio/magnetometer/ak8975.c | No | N/A |
bh1770glc | Proximity + Ambient Light Sensor | Code | no DT support, misc instead of iio | No | N/A |
tlv320dac33 | stereo audio DAC | ti.com | Yes | No | N/A |
tpa6130a2 | headphone amplifier | ti.com | Yes | No | N/A |
gpio-keys | keypad slider switch | N/A | Yes | PATCHv1 (2016-03-13) | N/A |
debug leds | cpu idle/sleep status leds | N/A | Yes | PATCHv1 (2016-03-13) | N/A |
HSI/SSI | bus used by modem | Code | 4.6-rc1 | 4.6-rc1 | N/A |
↳ Rapuyama | GSM/UMTS modem | Code | 4.6-rc1 | 4.6-rc1 | N/A |
Broadcom BCM4751 | GPS | Code | No | No | N/A |
wl1273 | WLAN IEEE 802.11 a/b/g/n | Code | Yes | 4.6-rc1 | linux-firmware.git |
↳ bluetooth | Bluetooth (nokia-h4p) | Code | No | No | merproject.org/nemo |
↳ radio | FM radio | Code | Yes | No | merproject.org/nemo |
Toshiba HES7 (SMIA compatible) | Main Camera (12 MP) | Code | Yes | No | N/A |
AS3645A | Flash Torch (I2C) | AMS.com | No | No | N/A |
AD58xx | Autofocus (I2C) | Code | No | No | N/A |
Nokia SMIA VGA | Front Camera (VGA) | Code | Yes | Yes | N/A |
Battery fuel gauge
The bq27521/sn27521 seems to be a bq27xxx series chip specially manufactured for Nokia devices. In opposit to other devices from the same series it does not measure the battery's state of charge. This is done in software with a battery discharge profile.
sn27521 register map
Rev. 13 and Rev. 14 can be distinguished via the device info register, which should have 0x21 in its upper byte.
Offset Rev. 13 | Offset Rev. 14 | Description | Unit |
---|---|---|---|
0x00 | 0x02 | Control | bit 6 = reset clear, bit 7 = reset, bit 8 = current interrupt enable |
0x02 | 0x04 | Config 1 | - |
0x04 | 0x06 | Config 2 | - |
0x06 | 0x08 | Status | bit 6 = reset event, bit 7 = busy event, bit 8 = current event |
0x08 | 0x0a | Temperature | 1/10 Kelvin |
0x0a | 0x0c | Voltage | mV |
0x0c | 0x0e | Current | mA |
0x0e | 0x10 | Avg. Current | mA |
0x10 | 0x12 | accumulated current [upper] | mAs |
0x12 | 0x14 | accumulated current [lower] | mAs |
0x24 | 0x26 | current limit | mA |
0x26 | 0x28 | current hys | mA |
0x32 | 0x34 | device info | - |
0x34 | 0x36 | fw revision | - |
0x62 | 0x62 | read-only boot low threshold | mV |
0x64 | 0x64 | read-only boot always | mV |
0x66 | 0x66 | read-only boot limit | mV |
BL-4D Information
- max. allowed current: 750 mA
- max. voltage: 4200 mV
- high voltage: 4179 mV
- low voltage: 3640 mV
- nominal capacity: 1200 mAh
- internal resistance: 140 mOhm
open-circuit voltage curve
Voltage (mV) | SoC (mAh) |
---|---|
3136 | 0 |
3190 | 17 |
3244 | 70 |
3287 | 130 |
3335 | 193 |
3383 | 265 |
3431 | 346 |
3477 | 440 |
3521 | 523 |
3566 | 596 |
3611 | 797 |
3653 | 998 |
3694 | 1070 |
3736 | 1185 |
3774 | 1200 |
3810 | 1211 |
3851 | 1220 |
3892 | 1226 |
3933 | 1232 |
3974 | 1237 |
4015 | 1241 |
4056 | 1245 |
4097 | 1247 |
4138 | 1250 |
4159 | 1251 |
GPS
The kernel driver only forwards MEIF encoded data from userspace to the device. The protocol itself was implemented in userspace. [this page] works on reverse engineering the protocol.