IMX6ULL LCD pixel format issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6ULL LCD pixel format issue

741 Views
stabel
Contributor I

I am currently working on upgrading my Yocto distribution for IMX6ULL target from sumo to dunfell, and have run into a peculiar problem I am unable to solve. In short, the problem is that red comes out as blue, and vice-versa, on my LCD touch display. The problem persists in both u-boot-imx (fixed splash image) and linux. It seems that fb, xorg or a driver is configured to utilize BGR24 instead of RGB24. I did not have this problem at all on sumo. My new kernel configuration is more or less the same as before. The device tree is the same. 

The fbset command provides the following information. The "rgba" setting clearly says BGR24. I am unable to change the rgba setting using the fbset command. Nothing happens. I have also tried to do the same from code, using ioctl: "ioctl(fbfd, FBIOPUT_VSCREENINFO, &vinfo)", and setting vinfo.red.offset = 0 and vinfo.blue.offset = 16. It seems to me that this information is read-only.

mode "480x272-60"
# 9.200 MHz, H: 17.359 kHz, V: 60.273 Hz
geometry 480 272 480 272 32
timings 108695 4 5 2 4 41 10
accel false
rgba 8/16,8/8,8/0,0/0
endmode

Here is my lcd device tree configuration:

&lcdif {
pinctrl-names = "default";
compatible = "fsl,imx28-lcdif";
pinctrl-0 = <&pinctrl_lcdif_dat
&pinctrl_lcdif_ctrl>;
lcd-supply = <&reg_all_3v3>;
interface_pix_fmt = "RGB24";
display = <&display0>;
status = "okay";
display0: display0 {
bits-per-pixel = <32>;
bus-width = <24>;

display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <9200000>;
hactive = <480>;
vactive = <272>;
hfront-porch = <5>;
hback-porch = <4>;
hsync-len = <41>;
vback-porch = <2>;
vfront-porch = <4>;
vsync-len = <10>;

hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
};
};

Do you have any idea how I can change this setting? I'd be happy to provide more information if necessary.

Labels (2)
0 Kudos
1 Reply

727 Views
igorpadykov
NXP Employee
NXP Employee

Hi Stian

 

>I am currently working on upgrading my Yocto distribution for IMX6ULL target from sumo to dunfell..

 

unfortunately nxp does not support dunfell in its official linux releases as can be found in description

for each bsp in Linux Release Notes (sect.2.1 New features) on official nxp linux documentation link below

https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...

For example, supported yocto versions:

Linux L5.10.35, 52 Hardknott
Linux L5.10.9 Gatesgarth.
Linux L5.4.3, 24, 47, 70 Zeus.
Linux L4.19.35 Warrior
Linux L4.14.98 Sumo

For example one can try with NXP linux L5.10

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx6ull-14x14-evk.dts?h=...

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx6ul-14x14-evk.dtsi?h=...

Support for non-nxp linux, like mainline or community bsps can be provided through meta-fsl-arm mailing list   :   https://lists.yoctoproject.org/g/meta-freescale

Difference between nxp official linux bsp and community bsp is described on

https://community.nxp.com/t5/i-MX-Processors/difference-between-Yocto-Community-BSP-and-Freescale-BS...

 

Best regards
igor

 

0 Kudos