Following up on our report for Linux 5.4, we continue to improve mainline kernel support for the Librem 5 phone. Here’s a summary of the progress we have made during the 5.5 and 5.6 development cycles.
The driver that saw the most patches was the LED backlight driver. More specifically the lm3692x family of chips as used in the Librem 5 to drive the LCD panel backlight. It makes up for almost half of the changes submitted, besides bug fixes and preparations for other changes.
We extended the driver so it can configure over-voltage protection and the maximum LED current to not damage the LED strips of the panel:
We also made sure the LED strip is turned fully off at brightness level 0, which saves a bit of power but more importantly prevents the phone from glowing slightly in the dark:
Broadmobi 818 support was added to the gtm601 driver, for audio calls:
Building on our previous work on driver support itself, we now hook up the IMU sensor to the devkit device tree hardware description. Things like accelerometer and magnetometer can now work out of the box:
Also, since the chip is oriented differently on the devkit’s mainboard than on the Birch and Chestnut Batches of the phone, we added support for the “mount matrix” API:
The battery fuel gauge on the Librem 5 is similar to the max17042, its driver was extended to support the phone’s max17055:
Our effort to make the display stack work out of the box continued by adding the eLDCDIF controller to the i.MX8MQ’s device tree. It can also pass on flags from the DSI controller (which acts as a DRM bridge):
We enabled thermal throttling for the GPU. This was a pure device tree change. The code was already there:
We fixed the scaling of the Librem 5’s light and proximity sensors to get correct values:
Lastly, we submitted patches for the Librem 5’s charge controller driver to work as a module:
This round we contributed 5 Reviewed-by: or Tested-by: tags to patches by other authors.
—
For current ongoing work, check out the kernel tree. Some of this is already merged into linux-next and should make it into a future report.