Parallel RGB with Custom Display Adapter Board <Colibri>

Hi @michael.tx ,

Thanks for checking in and apologies for the delayed response. Also, thanks @alex.tx for supporting me on this. The issue did end up being a hardware issue. I was able to test another adapter board and everything works great. I will post a detailed explanation of everything I did in the next couple of days.

Thank you for the update. I’m glad to hear that your issue has been resolved.

Alexander Samutin
Toradex

Original Issues:

  1. Overlay for Colibri iMX8X 24-bit parallel interface does not seem to work as there is no output to the display when using a custom display adapter.
  2. Once there was output to the display, a yellowish tint appeared where darker grays should be.
  3. Touch functionality not working even though driver appears in modules list.

Solution:

  1. There was no output because there was no power. Once the backlight pin was set correctly, the output worked fine.

  2. The yellow tinting issue was due to hardware; Using another display adapter fixed it.

  3. The touch driver does not automatically load and has to be enabled manually or through a service i.e.

    sudo modprobe edt-ft5x06

colibri-imx8x_panel-cap-touch-5inch_adapter_overlay.dts

#include "dt-bindings/pinctrl/pads-imx8qxp.h"

/ {
    compatible = "toradex,colibri-imx8x";
};

// Touch driver
#include "colibri-imx8x_focaltouch-adapter_overlay.dtsi"

// Parallel RGB driver (24-bit mode)
#include "colibri-imx8x_parallel-rgb-17SH10933_overlay.dtsi"

// New Haven display timings
#include "display-nhd50800480tf_overlay.dtsi"

colibri-imx8x_parallel-rgb-17SH10933_overlay.dtsi

#include "dt-bindings/pinctrl/pads-imx8qxp.h"

// Enable the parallel RGB interface on the Colibri iMX8X.
&{/} {
    panel_dpi: panel-dpi {
	    status = "okay";
	    compatible = "panel-dpi";
	    backlight = <&backlight>;
	    data-mapping = "bgr666";
	    power-supply = <&reg_module_3v3>;

	    port {
		    lcd_panel_in: endpoint {
			    remote-endpoint = <&adma_lcdif_out>;
		    };
	    };
    };
};

&adma_lcdif {
    status = "okay";
    #address-cells = <1>;
    #size-cells = <0>;

    port@0 {
	    reg = <0>;

	    adma_lcdif_out: endpoint {
		    remote-endpoint = <&lcd_panel_in>;
	    };
    };
};

&adma_pwm {
    status = "okay";
};

&adma_pwm_lpcg {
    status = "okay";
};

&backlight {
    status = "okay";
};

&colibri_gpio_keys {
    status = "disabled";
};

/* Colibri LCD Back-Light GPIO change to SODIMM 45 instead of 71 */
&pinctrl_gpio_bl_on {
    gpioblongrp {
	    fsl,pins = <IMX8QXP_QSPI0A_DATA1_LSIO_GPIO3_IO10 0x06000040>; /* SODIMM      45 */
    };
};

display-nhd50800480tf_overlay.dtsi

// NH-5.0-800480TF-ATXL#-CTP panel with a resolution of 800x480 pixel.
&panel_dpi {
        compatible = "panel-dpi";
        status = "okay";
        width-mm = <108>;
        height-mm = <65>;
        data-mapping = "bgr666";

        panel-timing {
                clock-frequency = <40000000>;
                hactive = <800>;
                vactive = <480>;
                hsync-len = <20>;
                hfront-porch = <210>;
                hback-porch = <26>;
                vsync-len = <10>;
                vfront-porch = <22>;
                vback-porch = <13>;
                pixelclk-active = <1>;
        };
};

colibri-imx8x_focaltouch-adapter_overlay.dtsi

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/* FocalTech I2C touch driver, compatible with FT5426 driver in NHD-5.0-800480TF-ATXL#-CTP touch display */
&i2c1 {
    #address-cells = <1>;
    #size-cells = <0>;
    status = "okay";

    /* Focaltech touch driver */
    polytouch: edt-ft5x06@38 {
            compatible = "edt,edt-ft5x06";
            reg = <0x38>;
            interrupt-parent = <&lsio_gpio0>;
            interrupts = <21 IRQ_TYPE_EDGE_FALLING>;	/* SODIMM 28, pin 38 of Iris V2 X16 connector */
	
	/* Use atmel adapter pin group to access SODIMM 28 */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_atmel_adap>;	

	/* To get correct feedback from touch driver */
    touchscreen-size-x = <800>;
	touchscreen-size-y = <480>;
	status = "okay";
    };
};

&lsio_pwm0 {
        status = "disabled";
};

&lsio_pwm1 {
        status = "disabled";
};
1 Like