Reference the section 3.1.1 of the AM355x Silicon Errata
In order to build a board that is configurable by software to support both RGB565 / RGB888 color modes I am trying to determine the best way to connect the LCD lines. We are using a AM3558 and a SN75LVDS83B LCD to LVDS converter connected to one of 7", 10.4", and 15" displays.
The board is currently connected per the Errata for RGB888 mode, we have not built the board yet, but want to have the best chance of it working correctly.
Several questions on this subject:
1. Would it be possible with a board electrically connected in RGB888 mode to configure the AM3558 pins LCD16 - 23 as GPIOs and set them to '0' (low level) this would effectively tie the LSB RGB lines to the SN75LVDS83B low, i.e. 16-bit color mode. Then run the AM3558 in RGB565 mode.
2. I realize in the above scenario per the RGB565 Errata the Red and Blue color lines are swapped, I have been reading in the forum in a couple of places: e2e.ti.com/.../437138
and
https://e2e.ti.com/support/arm/sitara_arm/f/791/p/264290/1053115#1053115
The above links are examples of code changes that swap RGB for BGR (i.e. swapping the Red and Blue bits), da8xx-fb.c driver is mentioned in a couple of places. Are there some known Linux code changes that will allow the Red and Blue LCD bits to be swapped? If so, can this be used to swap the Red and Blue bits on both RGB565 and RGB888 modes?
I am trying to decide the most flexible way to connect the Red and Blue bits between the AM3558 and the SN75LVDS83B to support both RGB565 and RGB888 modes. I'm assuming that some code is needed to swap RGB to BGR for one of the modes. Since the native mode for the AM3558 is RGB565 (16-bit) color, it may be best to connect the LCD lines to the SN75LVDS83B to support RGB565 mode and tie the remaining LCD16 - 23 bit inputs to the SN75LVDS83B to a low level by GPIO output as mentioned in 1. above. And for RGB888 mode set the pin mux for LCD16 - 23 bits to LCD (not GPIO) and use code to swap RGB to BGR.
Thanks,
Brian Weir