Next up on our report for Linux 5.2, here’s a list of Purism’s contributions for the 5.3 cycle Linux kernel. We contributed 12 patches, which involve the Librem 5 devkit product tree and a driver for the i.MX8MQs D-PHY.

Librem 5 devkit unit tree

In addition to the kernel resources, the Linux git repository has machine tree data files for all different sorts of components. These are not only employed by the kernel by itself, but also incorporated in other initiatives like U-Boot: they allow the program know what the hardware appears like. We want it to bind the accurate motorists, initialize clocks, assign the appropriate tackle ranges, interrupts, pin muxes, pad configs–and a lot of other items. As of Linux 5.3, the Librem 5 devkit components description is supported in mainline Linux:

Unit tree parts are commonly only added to parts that have doing the job drivers. Since not all display subsystem motorists are merged however (see underneath), the existing product tree does not (however) explain the show components it will be included the moment the drivers are merged. On the other hand, the latest product tree is adequate to boot the board from eMMC or community and supports WiFi, modem and distinctive types of sensors.

Following the original merge, we enabled the electric power essential in unit tree:

Assist the i.MX8MQ’s MIPI D-PHY

Having a photograph out of an Lcd panel, on a modern day smartphone like the Librem 5 making use of MIPI DSI, entails numerous parts. The driver for the MIPI DSI Liquid crystal display panel sits at the extremely bottom of the stack, and is panel-specific (it was mainlined very last month). The other components ordinarily reside on the SoC alone in the circumstance of the Librem5 and its devkit, an i.MX8MQ. These components are:

  • The MIPI D-PHY, that interfaces with the panel–in the i.MX8MQ, the IP main comes from Mixel.
  • The MIPI DSI host controller driver, an IP core from Northwest Logic it outputs to the D-PHY.
  • The exhibit controller, that feeds the display screen info to the DSI host controller. i.MX8MQ has two of them: the Display Controller Subsystem (DCSS)–which can also cope with DisplayPort and HDMI–and the simpler eLCDIF.

From the above factors, only the eLCDIF experienced a mainline driver (named mxsfb) and so, in buy to get the Liquid crystal display likely, we contributed the Mixel D-PHY driver for 5.3:

Which leaves us only with the MIPI DSI host controller driver (at the moment beneath assessment) and some i.MX8MQ patches (distinct to mxsfb) to get a photograph on the Lcd with a mainline kernel. Numerous many thanks to Robert Chiras, Fabio Estevam, Sam Ravnborg and Kishon Vijay Abraham I for reviewing, testing and merging this driver! Robert is also the author of the D-PHY driver in NXPs BSP, on which we dependent this driver.

The over is not more than enough for 3D acceleration, even though we have to have the etnaviv kernel driver for the Vivante GPU, but the important improvements will be the matter of yet another web site submit.

Mainlining the DCSS driver will also be a large effort… but NXP wants to search at it, so hopefully we will get both equally exhibit port and HDMI help in mainline Linux in a not also distant long run.

Additional components assistance

We extra assist for the BroadMobi BM818 M.2 card, one of the achievable modems for the Librem 5:

We preset a typo in the docs:

And additional irqsteer to the i.MQ8MQ device tree, a component required for DCSS (see above):

 We also contributed two evaluations to released patches.

Again, many thanks to all the reviewers so significantly! And remain tuned, for there is more coming shortly concerning the Linux 5.4 kernel.

Guido Günther