Imx7 lcd via mpu mode

I am a complete newb to using TFT’s and how the graphics system work in Linux. That said I have a need to connect a colibri iMX7D to a newhaven display that uses a 16bit MPU mode interface (model #NHD-2.4-240320CF-CTXI#-FT).

Reading through the iMX7 manual I see that the LCD controller can be used for this purpose but I don’t know how to go about it. There will be limited graphics (button icons, etc.) maybe, but mostly I need to be able to display text in different font sizes.

Can someone point me to further reading, samples, explanations of how this would/could work. I would love to see an explanation of the graphics software stack. Who does what, where, etc.

I’m not looking for anyone to solve my problem specifically, but I would very much a appreciate guidance on how to approach this. Some idea of how it would work

I see two steps here:

  1. Make sure that Linux/Hardware can drive the display
  2. Use Linux graphics subsystem to display what you need

The first part is definitely more challenging. While the display controller of the NXP i.MX 7Dual does support MPU mode, it is not supported by the fbdev driver (see drivers/video/fbdev/mxsfb.c) in NXP 4.9 Linux Kernel (which our BSP is based on) or the upstream (mainline) DRM driver (found in drivers/gpu/drm/mxsfb/ on upstream Linux kernels).

So enabling the display would involve adding MPU mode support in one of those display drivers and make sure that the display gets properly initialized. It seems to me that the DRM driver would a bit better suited since it would allow to properly abstract the display since it allows custom panel (display) drivers.

Once Linux can use the display, you will be able to draw into the frame buffer e.g. using the framebuffer device /dev/fb0. Graphics libraries such as Qt will allow to draw anything onto your display.

Since driver support is not available for this display it is probably more economical to choose a display which can be driven through a regular parallel RGB display interface.