xnux.eu - site map - news

PINE64 PinePhone

I usually abbreviate PinePhone as PP.

Hardware quirks

Hardware quirks can be found on this page https://wiki.pine64.org/…-_Braveheart

Feature/driver support matrix

This information reflects the status of my kernel tree at: https://megous.com/git/linux/log/?…

You can click on each feature's name to see more details and ways to use the feature on PP from userspace.

Feature Status Notes
User interface input
Power key works can be configured via PMIC to react more quickly to key press to power on the device
Volume buttons works Can be also used from bootloader to affect boot script decisions (with a patch)
Touch panel works touch panel has a lag. it's normal, but possible to avoid in SW by using prediction techniques
Accelerome­ter/Gyro works as IIO device
Magnetometer works interrupts are routed incorrectly on the board, and need to be disable, so the sensor can really only be used with external triggers
Light/proxi­mity sensor works as IIO device
Front Camera – GC2145 wip missing controls, I'm working on a driver
Back Camera – OV5640 partial missing autofocus, limited resolution/fra­merate settings, some controls misbehave, the mainline driver is not very reliable, i2c addresses of both cameras are the same so they conflict and can't be powered on at the same time
User interface output
Display panel works the driver needs some cleanup/op­timization, the panel power should be maybe turned off, when the panel is suspended (for now we just ask the panel nicely to enter low power state, but keep the power on)
Display panel backlight works needs some optimization in DTS to have evenly spread and more brightness levels
Audio works Codec was recently (2020–02–07) much improved by smaeul to support complex HW mixing of audio from bluetooth and the modem.
RGB LEDs works via a LED class driver
Flash LED not tested not implemented, but easy to control via GPIO/sysfs (z3ntu works on a driver)
Vibration motor works (as EV_FF input device)
Wireless connectivity
Modem Voice Calls works Calling works with special apps, some general distros already support basic calling features.
Modem data works
Bluetooth works
GPS works works via a modem
WiFi works old messy driver from 2014, I have a port of a newer version from 2017 to 5.5, power management with old driver sucks
Wired connectivity
USB-OTG Peripheral works, but slow sunxi musb driver doesn't implement DMA, throughtput is limited to ~12MiB/s and high CPU load, but it's possible to export block devices as USB storage devices over USB, and make PP emulate other USB gadgets (network card, etc.)
USB-OTG Host wip via work in progress anx7688 driver in this pin64-org branch: (pine64/pi­ne64-kernel-5.5.y-anx)
USB-OTG DP Alt mode wip should eventually work automagically without much driver support via the above metioned anx7688 driver
POGO pins untested should just work (it's a regular i2c interface, that's sup­ported by existing drivers), though see braveheart quirks signal's vol­tage = 3.3V, power voltage = 5V
Storage
eMMC works read speed is about 85MiB/s max in Linux. patches for u-boot to make it as fast during bootloader stage exist too
microSD works read speed is about 23MiB/s max in Linux. patches for u-boot to make it as fast during bootloader stage exist too
Power/thermal management
CPU hotplug works via ATF PSCI
System suspend wip/untested
Thermal regulation works CPU frequency throttling happens at 70°C by default. May be too much for some people. Configurable.
PMIC some bugs after poweroff from Linux, PMIC still consumes around ~5–7mA, drains the battery in 10 days. workarounds are probably possible (via double shutdown in bootloader), root cause is unknown
Battery/USB power works, mostly PP needs a good power supply AND USB cable (2A+, phone takes 700mA during use + up to another 1.2A for charging), missing config for OCV table in PMIC, skewed capacity reporting, charging is not enabled to 4.35V yet
Other (internal SoC features, etc.)
CSI Camera Interface works / OOT multi-camera support works and is well tested
Display engine some bugs display engine driver has some bugs when atomic modesetting uses multiple planes and scaling, patches exist, good enough for general use
DE2 Rotation Engine works / OOT Works with a demo app (camera and display are oriented differently, so rotation of frames is needed to get the correct orientation for preview)
Video H.264 Deco­ding/Encoding untested should work, support is mainline, I haven't tested it
Mali GPU untested should work, support is mainline, I haven't tested it

My publicly available work

Private work I'm doing with PinePhone

Current status of my PinePhone

Some of the things I've optimized my PinePhone software for: