AnsweredAssumed Answered

Kernel FDT (3.14.28): Multiple display definitions

Question asked by grim on Nov 4, 2016
Latest reply on Nov 14, 2016 by grim

We have a couple of different systems that we offer. Each has a different display.

One of the displays is split-mode, dual channel LVDS.

The other display is single-channel LVDS.

 

Both systems have the same kernel. Each has a different DTB (just because of the display).

I would like to have one kernel and one DTB that would run on either system but I'm having trouble wrapping my brain around how to accomplish this.

I use one device tree source file and I just comment out the display that I don't want for each DTB.

 

My display declaration looks like this.....

 

&ldb {
    status = "okay";
    /* AUO */
    split-mode = <1>;
    status = "okay";    
    lvds-channel@0 {
        crtc = "ipu1-di1";
        fsl,data-mapping = "spwg";
        fsl,data-width = <24>;
        status = "okay";
        primary;
        display-timings {
            t_lvds: t_lvds_default {
                clock-frequency = <107991360>;
                hactive = <1280>;
                vactive = <1024>;
                hback-porch = <102>;
                hfront-porch = <100>;
                vback-porch = <20>;
                vfront-porch = <20>;
                hsync-len = <2>;
                vsync-len = <2>;
            };
        };
    };
    lvds-channel@1 {
        crtc = "ipu1-di0";
        fsl,data-mapping = "spwg";
        fsl,data-width = <24>;
        status = "okay";
        split-mode;
        display-timings {
            
            
        };
    };
    
    /* Kyocera
    lvds-channel@0 {
        fsl,data-mapping = "spwg";
        fsl,data-width = <18>;
        status = "okay";
        primary;
        display-timings {
            native-mode = <&timing0>;
            timing0: hsd100pxn1 {
                clock-frequency = <78939059>;
                hactive = <1280>;
                vactive = <800>;
                hback-porch = <80>;
                hfront-porch = <80>;
                vback-porch = <11>;
                vfront-porch = <12>;
                hsync-len = <2>;
                vsync-len = <2>;
            };
        };
    };*/
};

 

As i said, I currently just comment out the display that's not being used when I generate my DTB file.

 

Can anybody offer guidance on how I can break this up into two different declarations?

I plan to have U-Boot detect the current environment and set the kernel variables accordingly before booting.

 

Any advice or insight would be appreciated!

Thank you.

Outcomes