BUG, i.MX: broken LVDS display

Holger Schurig holgerschurig at gmail.com
Tue Sep 22 07:09:11 PDT 2015


Hi Sascha,

I first applied your 3 patches to 2015.09.0 with my old device tree. I
applied your suggest device tree change, now my device tree looks like this:

/ {
    ...
    panel: panel {
        compatible = "ampire,am800480r3tmqwa1h", "simple-panel";
        /* enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; */
        /* backlight = <&backlight>; */

        port {
                panel_in: endpoint {
                        remote-endpoint = <&lvds0_out>;
                };
        };
    };
};

&ldb {
    status = "okay";

    lvds-channel at 0 {
        status = "okay";
        /* crtc = "ipu1-di0"; */
        fsl,data-mapping = "spwg";
        fsl,data-width = <18>;
        /* primary; */

        /* display-timings { */
        /*  native-mode = <&timing0>; */
        /*  timing0: AM-800600K1TMQW-01H-B { */
        /*      // dot clock: 40 - 50 MHz */
        /*         clock-frequency = <39701664>; // 72 Hz */
        /*      hactive = <800>; */
        /*      vactive = <600>; */
        /*      hsync-len = <3>;      // 1 - 40 */
        /*      hback-porch = <46>;   // 46 */
        /*      hfront-porch = <18>;  // 16 - 354 */
        /*      vsync-len = <10>;     // 1 - 29 */
        /*      vback-porch = <23>;   // 23 */
        /*      vfront-porch = <3>;   // 1 - 77 */
        /*      hsync-active = <1>; */
        /*  }; */
        /* }; */

        port at 1 {
            reg = <1>;

            lvds0_out: endpoint {
                remote-endpoint = <&panel_in>;
            };
        };
    };
};

I disable the GPIO and Backlight stuff because on my device neither of this
is needed (backlight is handled by some microcontroller, yuck).

I also added CONFIG_SIMPLE_PANEL=y, CONFIG_DRIVER_VIDEO_EDID=y,
CONFIG_DRIVER_VIDEO_BACKLIGHT=y. I hadn't enabled before, without the last
two I get a compilation error.

My /env/bin/init contains this

splash -x 550 -y 500 -b 0xffffff /env/logo.png
fb0.enable=1

With that, I didn't get any video output. When I run "dmesg", I see
(relevant parts):

imx-ipuv3 2400000.ipu: IPUv3H probed
imx-ipuv3 2800000.ipu: IPUv3H probed
Console activated
...
imx-ipuv3-crtc imx-ipuv3-crtc0: register vpl for /soc/ipu at 02400000
imx-ipuv3-crtc imx-ipuv3-crtc1: register vpl for /soc/ipu at 02400000
imx-ipuv3-crtc imx-ipuv3-crtc2: register vpl for /soc/ipu at 02800000
imx-ipuv3-crtc imx-ipuv3-crtc3: register vpl for /soc/ipu at 02800000
running /env/bin/init...
VPL: vpl_ioctl: no port 4 on /soc/aips-bus at 02000000/ldb at 020e0008
/lvds-channel at 0
imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->xres: 800
imx-ipuv3-crtc imx-ipuv3-crtc0: ipu_crtc_mode_set: mode->yres: 600
VPL: vpl_ioctl: no port 4 on /soc/aips-bus at 02000000/ldb at 020e0008
/lvds-channel at 0


And finally I also tried to to change "port at 1"/"reg = <1>" to "port at 4" /
"reg = <4>", but again to no avail:

imx-ipuv3 2400000.ipu: IPUv3H probed
imx-ipuv3 2800000.ipu: IPUv3H probed
Console activated
...
imx-ipuv3-crtc imx-ipuv3-crtc0: register vpl for /soc/ipu at 02400000
imx-ipuv3-crtc imx-ipuv3-crtc0: probe failed: No such file or directory
imx-ipuv3-crtc imx-ipuv3-crtc1: register vpl for /soc/ipu at 02400000
imx-ipuv3-crtc imx-ipuv3-crtc1: probe failed: No such file or directory
imx-ipuv3-crtc imx-ipuv3-crtc2: register vpl for /soc/ipu at 02800000
imx-ipuv3-crtc imx-ipuv3-crtc2: probe failed: No such file or directory
imx-ipuv3-crtc imx-ipuv3-crtc3: register vpl for /soc/ipu at 02800000
imx-ipuv3-crtc imx-ipuv3-crtc3: probe failed: No such file or directory
running /env/bin/init...


So I wonder where exactly barebox get's the timings on the GuF Vincell for
the Ampire display?   Probably the GuF board only sets up the display for
Linux, but doesn't in itself activate the framebuffer?  I grepped for
"Ampire" in Barebox git, and none of the files
(dts/Bindings/panel/ampire,am800480r3tmqwa1h.txt,
dts/Bindings/vendor-prefixes.txt, arch/arm/dts/imx53-guf-vincell.dts) seems
to contain any timings, so Barebox possibly cannot know how to setup the
timings ?!?!   To the best of my knowledge, the display doesn't have i2c
and therefore no EDID, and in my hardware there isn't any i2c going to the
display anyway.


But even when I re-enable the uncommented timings section, I won't get any
output. And also even with the totally unmodified DTS (which works for
barebox 2015.08.0 and also for Linux 4.18.21) which included the timings
barebox doesn't show me the splash.


If you wish, I could do the test with barebox.git as well.


Holger



More information about the barebox mailing list