Rgb interface bsb6

Hello i cannot get my rgb lcd display to work properly with the new bsbv6.

i’m using the latest bsbv6 and the tdx-multimedia-Reference image as a base.
Colibri IMX6DL 512Mb

Kernel version
6.1.50-6.4.0-devel+git.a2943d2d9a00

i added this to my custom devicetree:

&lcd_display {
    interface-pix-fmt = "";
    status = "okay";
};

&panel_dpi {
    compatible = "panel-dpi";
    data-mapping = "rgb666";
    status = "okay";
    width-mm = <48>;
    height-mm = <74>;
    bus-width = <18>;

        panel-timing {
                clock-frequency = <12500000>;
                hactive = <320>;
                vactive = <480>;
                hsync-len = <3>;
                hfront-porch = <3>;
                hback-porch = <3>;
                vsync-len = <2>;
                vfront-porch = <2>;
                vback-porch = <2>;
                hsync-active = <0>;
                vsync-active = <0>;
                pixelclk-active = <0>;
         };
};

these panel-timings should be correct here is a snippet from the lcd datasheet

The display does work but the image in my test image is a bit blurry and flickering and the cinematic experience demo has completely wrong colors, i suspect it’s using a rgb565 16bit instead of rgb666 18bit bus width.


from fbset i get this
mode "320x480-0"
	# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
	geometry 320 480 320 480 16
	timings 0 0 0 0 0 0 0
	accel true
	rgba 5/11,6/5,5/0,0/0
endmode

the boot arguments are:

vidargs=video=mxcfb0:dev=lcd,320x480@60,if=RGB666

Do i have to set the vidargs differently or how can i get the interface to use rgb666

thanks for your help

samuel

Could you please provide the datasheet for your display, as well as a schematic snippet that illustrates the details of the display’s connection?

I frogot to mention, that the display works on bsb v2.8b with these devicetree settings…

lcd: lcd@0 {
		compatible = "fsl,lcd";
		ipu_id = <0>;
		disp_id = <0>;
		default_ifmt = "RGB666";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ipu1_lcd>;
                mode_str ="320x480M@70";
                default_bpp = <18>;
        	status = "okay";
	};

	mxcfb1: fb@0 {
		compatible = "fsl,mxc_sdc_fb";
		disp_dev = "lcd";
		interface_pix_fmt = "RGB666";
		mode_str ="320x480M@70";
		default_bpp = <18>;
		int_clk = <0>;
		late_init = <0>;
		status = "okay";
	};

Here is the lcd Datasheet

20191028205740414.pdf (1.6 MB)

Hello @sh000,

I assume it worked on BSP 2.8b because it used a different driver in the downstream kernel. Here, you are on the mainline kernel. Could you please try this snippet in your custom devicetree on BSP6:

&lcd_display {
    interface-pix-fmt = "bgr666";
    status = "okay";
};

&panel_dpi {
    compatible = "panel-dpi";
    status = "okay";
    width-mm = <48>;
    height-mm = <74>;
    bus-width = <18>;

        panel-timing {
                clock-frequency = <12500000>;
                hactive = <320>;
                vactive = <480>;
                hsync-len = <3>;
                hfront-porch = <3>;
                hback-porch = <3>;
                vsync-len = <2>;
                vfront-porch = <2>;
                vback-porch = <2>;
                hsync-active = <0>;
                vsync-active = <0>;
                pixelclk-active = <0>;
         };
};

Please let me know how it goes.

Hello it does work now!

i had to change

data-mapping = “rgb666”;

to

data-mapping = “bgr666”;

and probably most important, i did not send the correct display initialization code over spi to the display…

thanks for your help…

Hello @sh000,

Glad to hear that it works now for you. Could you please also mark the answer as a solution? :slight_smile: