Hi,
I am trying to enable a mipi dsi display using an ili9806e driver in our imx7dsabre.
In dmesg, the only entries I can find relating to MIPI dsi is: "backlight supply power not found" and "MIPI DSI driver module loaded"
The main problem may relate to the device tree as the probing does not occur, or I could have missed some detail with bitbake, or it could be something else I haven't considered.
I expected that some probing should be performed as the display is connected, however there seems to be no difference with or without the display. I have started to modify the "mxcfb_hx8369_wvga.c" driver to the specifications on our display, though I am not finished as it seems not to make a difference for now. I have been able to find an Android driver for the ili chip(9806c, with 9806e commented out in the driver code), is there an good way to port this for Linux?
How do I proceed with this problem? Why does not the driver probing occur?
Aattachments are dmesg output, device tree file, Android driver. Any help would be appreciated
Original Attachment has been moved to: imx7d-sdb-mipi-dsi.dts.zip
Original Attachment has been moved to: ili9806c_wvga_dsi_vdo.c.zip
Original Attachment has been moved to: dmesg.txt.zip
已解决! 转到解答。
Hi Ruben
seems there is no probe for hx8369 driver, its video parameters are called from
mipi_dsi.c (please refer also to sect.7.3.1 Source Code Structure attached Linux Manual) :
struct mipi_dsi_match_lcd mipi_dsi_lcd_db[]
mipid_hx8369_get_lcd_videomode..
and lcd_panel = "TRULY-WVGA" in dts imx7d-sdb-mipi-dsi.dts :
http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/tree/arch/arm/boot/dts/imx7d-sdb-mipi-dsi.dt...
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Than you Igor,
I have made some changes to my device tree (imx7d-sdb-mipi-dsi.dts) to correct some of the errors.
I also kind of stumbled into something that seemed to make more difference, I ran a menuconfig of the linux-fslc-imx kernel and I believe I enabled some more backlight drivers and some voltage regulators or something like that, I cannot really say for sure. This made my device tree file compile and come up with compilation errors, I corrected those and recompiled then I got the following output in dmesg:
mxc_mipi_dsi_samsung 30760000.mipi-dsi: failed to read lcd_panel property
mxc_mipi_dsi_samsung: probe of 30760000.mipi-dsi failed with error -22
To my frustration, the device tree seems to have stopped compiling, and I cannot reproduce the result by configuring the kernel. Could anyone point me in the right direction here?
Also tips on what may cause error 22 in dmesg would also be appreciated.
Thanks for your help Igor
For some reason, we are not able to get any output in dmesg relating to the mipi display anymore, I assume that this is due to errors in our device tree.
Can you suggest what we may be missing or have got wrong here?
Some sections are commented out in this version, some of them should possibly be included, but we have failed to figure out which.
/* | |
* Copyright (C) 2016 Freescale Semiconductor, Inc. | |
* | |
* This program is free software; you can redistribute it and/or modify | |
* it under the terms of the GNU General Public License version 2 as | |
* published by the Free Software Foundation. | |
*/ | |
#include "imx7d-sdb.dts" | |
/ { | |
compatible = "fsl,imx7d-mipi-dsi"; | |
mipi_dsi_reset: mipi-dsi-reset { | |
compatible = "gpio-reset"; | |
reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>; | |
reset-delay-us = <1000>; | |
#reset-cells = <0>; | |
}; | |
mipi_phy: mipi-phy { | |
compatible = "fsl,imx7d-mipi-dsi"; | |
/*phy_data_lanes = <2>; | |
max_phy_clock = <80000000>; | |
phy_mode = "rgb";*/ | |
}; | |
reg_mipi_dsi_power_on: mipi_dsi_power_on { | |
compatible = "regulator-fixed"; | |
regulator-name = "mipi_dsi_power_on"; | |
gpio = <&gpio6 14 0>; | |
enable-active-high; | |
}; | |
/* mxcfb1:fb@0{ | |
compatible = "fsl,mxc_sdc_fb"; | |
disp_dev = "mipi_dsi_samsung"; | |
interface_pix_fmt = "RGB565"; | |
mode_str = "TRULY-WVGA"; | |
default_bpp = <16>; | |
int_clk = <0>; | |
lete_init = <0>; | |
status = "okay"; | |
}; */ | |
}; | |
&lcdif { | |
disp-dev = "mipi_dsi_samsung"; | |
compatible = "fsl,imx7d-mipi-dsi"; | |
}; | |
&mipi_dsi { | |
pinctrl-names = "default"; | |
pinctrl-0 = <&pinctrl_mipi_dsi_reset>; | |
lcd_panel = "TRULY-WVGA"; | |
resets = <&mipi_dsi_reset>; | |
mipi-phy = <&mipi_phy>; | |
disp-power-on-supply = <®_mipi_dsi_power_on>; | |
status = "okay"; | |
}; |
So I fixed driver probing with fixing device tree layout. I just copied sections &lcdif and &mipi_dsi
from imx7-sdb-mipi-dsi.dts into mx7-sdb.dts:
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index edcab58..9ed121d 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -1187,3 +1187,20 @@
pinctrl-0 = <&pinctrl_wdog>;
fsl,wdog_b;
};
+
+/ {
+ mipi_dsi_reset: mipi-dsi-reset {
+ compatible = "gpio-reset";
+ reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <1000>;
+ #reset-cells = <0>;
+ };
+};
+
+&mipi_dsi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_mipi_dsi_reset>;
+ lcd_panel = "TRULY-WVGA-TFT3P5581E";
+ resets = <&mipi_dsi_reset>;
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index 0cef31e..edcab58 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -983,6 +983,7 @@
&pinctrl_lcdif_ctrl>;
enable-gpio = <&gpio_spi 7 GPIO_ACTIVE_LOW>;
display = <&display0>;
+ disp-dev = "mipi_dsi_samsung";
status = "okay";
display0: display {
--
2.9.5
And I have a probing requests (I see it in dmesg) and I have something on lcd (that far away from clear picture, but it is because I have a little different lcd panel, not a TRULY-WVGA-TFT3P5581E).
Hi,
Looks like dts for imx7dsabre board have issues.
I was able to find problems with validation tools and when I have tried to restore dts from booted image, it has no sections mipi_dsi at all.
I will continue to fix it and share my update here.
Hi Ruben
seems there is no probe for hx8369 driver, its video parameters are called from
mipi_dsi.c (please refer also to sect.7.3.1 Source Code Structure attached Linux Manual) :
struct mipi_dsi_match_lcd mipi_dsi_lcd_db[]
mipid_hx8369_get_lcd_videomode..
and lcd_panel = "TRULY-WVGA" in dts imx7d-sdb-mipi-dsi.dts :
http://git.freescale.com/git/cgit.cgi/imx/linux-imx.git/tree/arch/arm/boot/dts/imx7d-sdb-mipi-dsi.dt...
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------