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?