Small tidbits and magnetometer driver upstreaming
I've made some effort to clean up and add features to magnetometer driver
written by Icenowy for magnetometer used on Pinephone and Pinephone Pro called
Originally the driver did not have buffer mode, so it was not possible to
read all X/Y/Z values of magnetic flux density. You could only read X, Y and
Z in sequence sampled at different points in time. Not optimal.
I've added buffered mode to the driver and some power management. While
AF8133J doesn't benefit much from this power management, it is important to have
it due to shared nature of some resources, like power regulators.
Small recent bugs, and stuff
- I've noticed that rkisp1 started to fail probing in Linux 6.7.4 due to this
commit that was backported to all stable releases. A fix.
Both Cameras broke on Pinephone Pro due to this.
- There was also upstream breakage of USB-C power source mode on Pinephone
Pro, making all devices that required power from the phone unusable, due to this
commit. I've notified the original author about the issue
- I've also found and fixed a small long running annoyance with VCM driver for
Pinephone Pro camera lense controller (DW9714). It was failing with some I2C
errors from time to time during probe. Now that's fixed, too.
Other than that, nothing that unusual is going on. I continue to maintain my
kernel branches, as usual.
Some PineTab2 work
I've extended the RK817
PMIC driver to allow fine control over charging current and voltage via
sysfs, and implemented charger detection via USB-PD. Most of that work is
available in my pt2–6.8 branch, along with the initial upstreamed version of
PT2 device tree.
The are some unresolved issues with USB data role switching, but other than
that, the port now has working power negotiation.
I helped review PineTab2 upstreaming patches, and PT2 support landed
upstream recently, thanks to upstreaming effort of Manuel Traut.
Jonas Karlman (kwiboo) already sent patches
to support PT2 to U-Boot, based on the above work.
Rockchip blobs, U-Boot and Linux kernel are plenty fast on PT2. Boot times to
Linux console are on the order of ~5s if you disable some useless DT nodes that
delay boot time by quite a lot. One is PCIe controller, and the other is
internal WiFi SDIO interface. Manufacturer's firmware/driver for internal WiFi
is really not very trustworthy to me. So I use this solution based on
rtl8822bu WiFi driver, which has excellent performance, nice upstream
manufacturer supported drivers (rtw88), and just works. :) Sad that internal
WiFi situation is such as it is, but at least the 360° C-A connector adapter
is quite robust and avoids most accidental disconnects or port damage. WiFi
adapter is nicely hidden behind the tablet. And thankfully, PT2 has 2 USB
ports, so I can still charge it with USB WiFi adapter inserted.
Upstream WiFi driver for
development by airtower-luna
is also very exciting. She extended the above mentioned upstream rtw88 driver to
support Pinephone's RTL8723CS WiFi chip. This means that it may soon be
possible to shed the massive out of tree driver for this WiFi chip that kept
WiFi working on original Pinephone, up to now.
I've been trying this driver and integrated it into my orange-pi-6.8 branch
to be able to test it more. It works, but there are some issues with reception.
Reception speed is quite limited to about 1–2mbit/s compared to
~30mbit/s that the out of tree driver is capable of on the same network. I'm
happy to see this progress.
New releases of my bootloader
Thanks to kwiboo's awesome work on all kinds of rockchip boards and SoCs in
U-Boot, I'll soon be able to build bootloaders for all the many boards I have
from a unified source code tree. The new U-Boot version seems to support booting
from NVMe on Orange Pi 5 Plus and Pine Quartz boards, which is quite
I did a rebase of my remaining patches for Pinephone Pro display support on
top of kwiboo's U-Boot
2024.01 and while it doesn't work, yet, it should not be hard to figure out
why and look at upstreaming more of the remaining patches.