This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: LCD display issue with EZSDK 6.0

Part Number: AM3352
Other Parts Discussed in Thread: DA8XX

Tool/software: Linux

Hi Team,

Recently, one customer reported an issue with LCD display based on Linux EZSDK 6.0.

The issue is happened on the customer production board. As you know, the AM335x hardware connections for 24bit/16bit has different RGB assignments. 

So that required the hardware design should follow the specific display mode according to 24/16 bit choice. 

In this customers' design, they want to use the 24bit, but hardware connections are based on the 16 bit design. 

So when they make the display work, the RGB was not correctly displayed. It was BGR, as read part and blue part are swapped due to the wrong connection.

Additionally, when they want to rotate the display 90', the result is the same. 

Afterwards, they're tying to make some code change to solve this issue. 

1. In the uboot stage, setting DISPC_PIXELFORMAT_RGB24 to enable the 24 bit.

2. in the kernel da8xx_fb.c file, change the function:

static int fb_check_var(struct fb_var_screeninfo *var,

                            struct fb_info *info)

.........................

case 24:

                   //var->red.offset = 16;

                   var->red.offset = 0;

                   var->red.length = 8;

                   var->green.offset = 8;

                   var->green.length = 8;

//var->blue.offset = 0;

                   var->blue.offset = 16;

                   var->blue.length = 8;

                   break;

........................

This code change make the display work correctly in normal display with RGB.

However, when rotate 90', the color is still BGR. They don't understand why. So they want to know whether there is an approach to solve this?

  • Steven,

    EZSDK 6.0 has been obsoleted for more than 2 years now. It's no longer maintained or supported by TI.
  • Biser,
    Thanks for your reply!
    May I ask for the latest processor SDK, do we have supported the RGB -BGR swap function by changing the offset of each value in software side? Or customer had to redesign the hardware board?
  • Hi Team,
    May I ask for your help to offer a suggestion?
    Customer is waiting for our feedback for the next step solution. Thanks!
  • My below comment is with respect to tilcdc DRM based driver as that's what we support -

    With plain AM3, there's no workaround. All we can do is handle the pixel formats correctly in the SW, i.e. the DRM driver tells to the userspace that it supports RGB565 and BGR888, or it supports BGR565 and RGB888, depending on how the board has been wired.

     

    If there's an external encoder, like tda998x on beaglebone, which supports swapping the color components, then that driver can fixup the colors.

     

    tda998x can be used with the legacy fbdev driver too, and made to do that swap. I am not sure though if that's available in mainline. We offer no support for that.

     

    If the board has been wired wrong way, the best fix is to fix the board, or  create a cable going to the panel which fixes the wiring.