Problems using MIPI DSI

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

Problems using MIPI DSI

3,976 Views
visparon
Contributor II

Hi i'm creating a custom yocto image to use a mipi dsi display on a Wandboard Dual, i don't know if i'm missing something because i cannot make the image load the drivers or detect the screen. I already did this:

- Modify the mxcfb_hx8369_wvga.c with my display data.
- Modified imx6qdl-wandboard.dtsi and added this:

/ {

mipi_dsi_reset: mipi-dsi-reset {
compatible = "gpio-reset";
reset-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
reset-delay-us = <50>;
#reset-cells = <0>;
}; };

 

&mipi_dsi {
dev_id = <0>;
disp_id = <0>;
lcd_panel = "TRULY-WVGA";
resets = <&mipi_dsi_reset>;
status= "okay";
};

 

- Compiled my yocto using bitbake core-image-base
- Configure bootloader with this command: 

video=mxcfb0:dev=mipi_dsi,TRULY-WVGA,if=RGB24

 

But i' still cannot see anything on the display.

 

My bootloader info is telling me this:  

No panel detected: default to HDMI
Display: HDMI (1024x768)

 

Hope i can get some help because i already have 1 week with this problem. Thank you in advance.

0 Kudos
Reply
4 Replies

3,488 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Hector,

    imx6qdl wandboard seems not be released by NXP,   for I.MX6Q/DL,  we have 2 kinds of EVK boards for customer, one is SabreSDB, the other is SabreAI. Software for all other customized board based on i.MX6QDL can be ported on the basis of linux BSP released for SabreSDB & SabreAI.

  Below is suggestions, you can try :

-----------------------------

{
    regulators {
        compatible = "simple-bus";
        #address-cells = <1>;
        #size-cells = <0>;

        reg_2p5v: regulator@0 {
            compatible = "regulator-fixed";
            reg = <0>;
            regulator-name = "2P5V";
            regulator-min-microvolt = <2500000>;
            regulator-max-microvolt = <2500000>;
            regulator-always-on;
        };

        reg_3p3v: regulator@1 {
            compatible = "regulator-fixed";
            reg = <1>;
            regulator-name = "3P3V";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-always-on;
        };

        reg_mipi_dsi_pwr_on: mipi_dsi_pwr_on {
            compatible = "regulator-fixed";
            regulator-name = "mipi_dsi_pwr_on";
            gpio = <&gpio6 14 0>;    // It should be changed to be your GPIO.
            enable-active-high;
        };


    };


... ...

}

/* Please pay attention to GPIO IOMUX for your application, GPIO pins for POWER &  RESET should be added to iomux node*/

The IOMUX of these 2 GPIOs should be added to "imx6qdl-wandboard-revc1.dtsi" or "imx6qdl-wandboard-revb1.dtsi",   This change is determined by which version of board you are using.


&mipi_dsi {
    dev_id = <0>;
    disp_id = <1>;
    lcd_panel = "TRULY-WVGA";
    disp-power-on-supply = <&reg_mipi_dsi_pwr_on>;
    reset-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
    reset-delay-us = <50>;
    status = "okay";
};

Have a nice day!

NXP TIC weidong sun

3,488 Views
enrico_papi
Contributor II

Hi Wigros,

we have the same problem finding the reset-gpio to use.

I have no clue which is the MIPI_DSI Reset GPIO from our the schematic or datasheet.

I can't find any signal or ball name that refers to dsi reset in the attached i.MX 6Dual/6Quad Applications Processors Datasheet.

Shouldn't this GPIO be connected directly to the i.mx6 processor? And be indipendent of

We took as example the imx6qdl-sabresd.dtsi which use mipi_dsi module:

    mipi_dsi_reset: mipi-dsi-reset {
        compatible = "gpio-reset";
        reset-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
        reset-delay-us = <50>;
        #reset-cells = <0>;
    };

Our board is based on this chip: MSCMMX6QZCK08AB. It is an SCM - i.MX6, that normally has mipi_dsi disabled.

Here is our devide tree:

    reg_mipi_dsi_pwr_on: mipi_dsi_pwr_on {
        compatible = "regulator-fixed";
        regulator-name = "mipi_dsi_pwr_on";
        gpio = <&gpio6 14 0>;
        enable-active-high;
    };

    mipi_dsi_reset: mipi-dsi-reset {
        compatible = "gpio-reset";
        //reset-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; wrong
        //reset-gpios = <&gpio5 27 GPIO_ACTIVE_LOW>; wrong 
        reset-delay-us = <50>;
        #reset-cells = <0>;
    };

    &mipi_dsi {
        lcd_panel = "AUAM163";
        dev_id=<0>;
        disp_id=<0>;
        //disp-power-on-supply = <&reg_mipi_dsi_pwr_on>;
        resets = <&mipi_dsi_reset>;
        status = "okay";
    };

If we leave the "reset-gpios" entry commented we have the error:

mxc_mipi_dsi 21e0000.mipi: failed to reset: -517

If we try to use the GPIO of the sabresd devicetree we have the error:

mxc_mipi_dsi 21e0000.mipi: mipi_dsi IRQ status0:0x0, status1:0x400!
mxc_mipi_dsi 21e0000.mipi: mipi_dsi IRQ status0:0x0, status1:0x400!

Could the GPIO be one of these?

DSI_CLK0M, DSI_CLK0P, DSI_D0M, DSI_D0P, DSI_D1M, DSI_D1P

I have read many posts in the NXP community about this topic, each one with a different dsi reset gpio value. (for example:https://community.nxp.com/thread/437150 ) I wonder where they find it.

Thank you for your support

Regards,

Enrico

0 Kudos
Reply

3,488 Views
visparon
Contributor II

Hi Wigros thank you very much.

Do you know what is the purpose of dev_id? Or where i can find more info about this?

I'm getting this error:

mxc_mipi_dsi 21e0000.mipi: failed to read of property dev_id
mxc_mipi_dsi: probe of 21e0000.mipi failed with error -22

Meanwhile, i will continue to do more testing.

0 Kudos
Reply

3,488 Views
enrico_papi
Contributor II

Hi Hector,

this error is caused by a missing "dev_id" value in your "mipi_dsi" section of device tree.

As Wigros has written you can put "dev_id = <0>;"

This value is read in the /drivers/video/fbdev/mxc/mipi_dsi.c mipi_dsi_probe function.

Be sure to put also "disp_id" value