PINE64 PinePhone (pine64-pinephone)
The PinePhone has a serial port in the headphone connector, it's activated by the 6th contact on the dipswitch. If the switch is off then the headphone connector is in audio mode, if it's on then it's in UART mode.
The uart is 115200n8
The pinout for the serial connector on the tablet side is:
- Tip: RX
- Ring: TX
- Sleeve: GND
The serial connection is 3.3V
You can also buy the debug cable from PINE64 Store
|Rear camera||OmniVision OV5640||VIDEO_OV5640|
|Camera flash||SGMICRO SGM3140||LEDS_SGM3140|
|Front camera||GalaxyCore GC2145||Nope|
|Ambient light / Proximity||SensorTek STK3335||STK3310|
|Volume buttons||Buttons connected to the KEYADC||KEYBOARD_SUN4I_LRADC|
|Power button||X-Powers AXP803||INPUT_AXP20X_PEK|
|Battery fuel gauge||X-Powers AXP803||BATTERY_AXP20X|
The touchscreen is controlled by the
edt_ft5x06 module on i2c-0. The current issue is that it takes a long while before the i2c-0 bus works after booting. For some reason it takes ~110 seconds before communication is possible. This causes an issue because the module tries to probe the touchscreen before the bus works.
The current workaround is to build
edt_ft5x06 as a module and rmmod/modprobe the module after the i2c-0 bus works so it gets probed again.
[ 17.942111] edt_ft5x06 0-0038: touchscreen probe failed ...after rmmod edt_ft5x06; modprobe edt_ft5x06... [ 3989.326377] input: generic ft5x06 (12) as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0038/input/input2
The communication to the touchscreen controller is only possible when power is supplied the the 4G modem using the hardware switch (the light should be off) since the power rail for the 4G modem is used as pull-up for the i2c bus that connects the touchscreen controller to the sopine.
The camera's both share the csi-0 bus. Currently only the rear camera (OV5640) has mainline linux support.
It's also not clear how the camera switching would work on the software side, maybe Linux just deals with it if the device tree nodes for the second camera get added.
The camera hardware pipeline is controlled with
media-ctl, the result is on
pine-dontbeevil:~# media-ctl --set-v4l2 '"ov5640 2-003c":0[fmt:UYVY8_2X8/1280x720]' pine-dontbeevil:~# ffmpeg -s 1280x720 -f video4linux2 -i /dev/video0 -vframes 1 selfie.jpg
The camera flash consist out of a SG Micro SGM3140 "500mA Buck/Boost Charge Pump LED Driver" and a EHP-C04 LED.
The driver supports Flash and Torch mode, the first being brighter but only for about 300ms, when it switches to Torch mode. Torch mode is lower brightness but can be turned on continuously.
# Turn on Flash, wait 0.3s, turn off echo 1 > /sys/class/leds/sgm3140-flash/flash_strobe sleep 0.3 echo 0 > /sys/class/leds/sgm3140-flash/flash_strobe
# Turn on Torch echo 1 > /sys/class/leds/sgm3140-flash/brightness # Turn off Torch echo 0 > /sys/class/leds/sgm3140-flash/flash_strobe
WiFi generally works but the driver is quite sporadic when it wants to work. Rebooting/rmmod and modprobe'ing the driver/rfkill block - unblock helps.
[ 1962.148414] RTL8723BS: set bssid:e4:8d:8c:49:44:e2 [ 1962.148468] RTL8723BS: set ssid [BrixIT] fw_state = 0x00000088 [ 1962.159624] RTL8723BS: start auth [ 1962.161053] RTL8723BS: auth success, start assoc [ 1972.568295] RTL8723BS: set bssid:00:00:00:00:00:00 [ 1985.233165] RTL8723BS: set bssid:e4:8d:8c:49:44:e2 [ 1985.233228] RTL8723BS: set ssid [BrixIT] fw_state = 0x00000088 [ 1985.304510] RTL8723BS: start auth [ 1985.306184] RTL8723BS: auth success, start assoc [ 1995.657207] RTL8723BS: set bssid:00:00:00:00:00:00 [ 2006.185941] RTL8723BS: set bssid:e4:8d:8c:49:44:e2 [ 2006.185994] RTL8723BS: set ssid [BrixIT] fw_state = 0x00000088 [ 2006.193313] RTL8723BS: start auth [ 2006.194839] RTL8723BS: auth success, start assoc [ 2010.497801] RTL8723BS: set bssid:00:00:00:00:00:00
There is a patch series on lkml. A v2 for this series is in progress.
Receiving text messages works. Calls should work too but weren't tested yet.
All sensors work and are accessible as Industrial I/O (iio) devices in linux. To query the data you can cat the files in `/sys/bus/iio/` to make the kernel module query the sensors
dontbeevil:~# cat /sys/bus/iio/devices/iio\:device0/name mpu6050 dontbeevil:~# cat /sys/bus/iio/devices/iio\:device0/in_accel_z_raw -17594 dontbeevil:~# echo "Verified gravity still exists"
The RGB led works with the led driver, but due to hardware bugs there can be only one led active at the same time and the blue led doesn't work because some pins are reversed.
# Activate LED echo 1 > /sys/class/leds/$COLOR/brightness # Deactivate LED echo 0 > /sys/class/leds/$COLOR/brightness
Sound output should work after unmuting
AIF1 Slot 0 digital
Doesn't work yet.
Doesn't work for MartijnBraam, reported to work for other people.
- pmaports!308 Initial merge request