2

I have been working on implementing a custom 10.1" LCD screen to my Acqua “System On Module” (running a SAMA5D36 Microchip MPU) unfortunately without any good results.

The problem I am facing is that my Modetest output does not give the expected output. The output I am expecting is as follows:

expected output modetest

But this is what I get instead is:

received output modetest

The LCD screen which is provided to be suitable with the board is a 5" lcd screen, when I connect this lcd everything seems to be running fine and modetest looks as expected. But when I connect the 10.1" LCD with a different resolution it doesn't work anymore.

Things I have changed to transition from the 5" to the 10.1" LCD (different resolution)

  • Checked if connections are compatible
  • Changed the clock frequency and display timings in the devicetree to match the new display.

We changed the frequency and display timings, by building the kernel to be suitable for the 5" display and then editing all the timing parameters to fit the 10.1" display. The part where we edit these parameters are as follows:

panel-simple.c
static const struct drm_display_mode acme_50inch_mode = {
    .clock = 33300,
    .hdisplay = 800,
    .hsync_start = 800 + 1,
    .hsync_end = 800 + 1 + 64,
    .htotal = 800 + 1 + 64 + 64,
    .vdisplay = 480,
    .vsync_start = 480 + 1,
    .vsync_end = 480 + 1 + 23,
    .vtotal = 480 + 1 + 23 + 22,
    .vrefresh = 60,
    .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

I have the feeling that there is something missing in my kernel or that I am overlooking a parameter somewhere that still needs to be changed.

Does anyone have an idea of what piece of information I am missing to drive a custom LCD?

Giacomo1968
  • 58,727

1 Answers1

0

Your display pipeline is generating the data as per the height-width, left-right, and upper/lower margin you have configured in the panel driver. if any of these parameters are wrong you will never get the proper output on display. you should refer to the 10.1" panel datasheet and update those variables, even though sometimes you need to tune those variables as well in order to get fit to the screen image.