imx8qxp LVDS-LCD issue

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

imx8qxp LVDS-LCD issue

1,533 Views
yang_wang-wy
Contributor III

Hi Sir,

I am debugging the ili6150H LCD in the imx8qxp CPU. But Looks like I meet some problems. The system can not get the LCD's infomation.

I added the LCD info in the `panel_simple.c`

```

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 0382bb0de0a9..509486fe7a1d 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1890,6 +1890,36 @@ static const struct panel_desc techshine_ts_p0700031a = {
.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
};

+/*following add by wang yang BSCE*/
+
+static const struct display_timing goworld_ili6150h6_timing = {
+ .pixelclock = { 44900000, 51200000, 63000000 },
+ .hactive = { 1024, 1024, 1024 },
+ .hfront_porch = { 16, 160, 216 },
+ .hback_porch = { 160, 160, 160 },
+ .hsync_len = { 1, 1, 256 },
+ .vactive = { 600, 600, 600 },
+ .vfront_porch = { 1, 12, 127 },
+ .vback_porch = { 10, 35, 200 },
+ .vsync_len = { 1, 1, 128 },
+ .flags = DISPLAY_FLAGS_DE_HIGH,
+};
+
+static const struct panel_desc goworld_ili6150h6 = {
+ .timings = &goworld_ili6150h6_timing,
+ .num_timings = 1,
+ .bpc = 8,
+ .size = {
+ .width = 165,
+ .height = 105,
+ },
+ .delay = {
+ .enable = 25,
+ .disable = 25,
+ },
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+};
+/*end*/
static const struct display_timing tianma_tm070jdhg30_timing = {
.pixelclock = { 62600000, 68200000, 78100000 },
.hactive = { 1280, 1280, 1280 },
@@ -2198,6 +2228,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "techshine,ts-p0700031a",
.data = &techshine_ts_p0700031a,
+ }, {
+ .compatible = "goworld,ili6150h6",
+ .data = &goworld_ili6150h6,
}, {
.compatible = "tianma,tm070jdhg30",
.data = &tianma_tm070jdhg30,

```

The dts info 

```

@@ -60,7 +60,20 @@
100>;
default-brightness-level = <80>;
};
+ lvds1_panel {
+ compatible = "goworld,ili6150h6";

+ pinctrl-names = "default";
+ pinctrl-0 = <&lvds1_pin>;
+ reset-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+ reset-delay-ms = <10>;
+
+ port {
+ panel_lvds1_in: endpoint {
+ remote-endpoint = <&lvds1_out>;
+ };
+ };
+ };
};

>;
@@ -166,10 +179,40 @@
SC_P_ENET0_REFCLK_125M_25M_LSIO_GPIO5_IO09 0x20000020 // F28_95: !INT_KEY, mode 4, input, pull-up
>;
};
+ lvds1_pin: lvds1Grp {
+ fsl,pins = <
+ SC_P_SPI0_SDI_LSIO_GPIO1_IO05 0x06000021 // LVDS_RST: output, pull
+ >;
+ };

};
};

+
+/* LDB2 used for display on LVDS1 */
+&ldb2 {
+ status = "okay";
+ power-domains = <&pd_mipi_dsi_1_lvds>;
+
+ lvds-channel@0 {
+ fsl,data-mapping = "spwg";
+ fsl,data-width = <24>;
+ status = "okay";
+
+ port@1 {
+ reg = <1>;
+
+ lvds1_out: endpoint {
+ remote-endpoint = <&panel_lvds1_in>;
+ };
+ };
+ };
+};
+
+&ldb2_phy {
+ status = "okay";
+};

+&pwm_mipi_lvds1 {
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_pwm_mipi_lvds0>;
+ pinctrl-0 = <&pinctrl_pwm_mipi_lvds1>;
status = "okay";
};

```

Now Looks like I could get the width and longth from the `panel_simple.c`, but the others info could not get my setting.

```

root@wy:~# fbset

mode "1024x600-0"

        # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz

        geometry 1024 600 1024 600 32

        timings 0 0 0 0 0 0 0

        accel true

        rgba 8/16,8/8,8/0,0/0

endmode

```

@sir Could you give me some comments for this issue? The attachment is the infomation of the LCD IC ili6150H

0 Kudos
2 Replies

1,438 Views
igorpadykov
NXP Employee
NXP Employee

Hi Wang

I believe code changes are correct, one can try to fully rebuild image

and check that correct linux bsp was used, one can check Release Notes

for supported chips on Linux  documentation page:

i.MX Software | NXP 

Recommended to use uboot version described in each Release Note and not to mix

scfw versions.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,438 Views
yang_wang-wy
Contributor III

Hello Igor,

Thanks for your replay, I have found the root cause.

The module factory send me an wrong spec of the LCD module.  The standby pin status in spec is opposite with working vaule.

Issue fixed, Please help to disable this question, thanks.

0 Kudos