This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM625: How to develop DPI display driver in uboot?

Part Number: AM625

Hi Expert,

Customer know currently Ti will not put much effort to implement this u-boot feature.

Customer would like to know if they plan to do it by theirself, how can they do it?

 

Following is the steps I did, if anything is incorrect I would like Ti Expert can give me suggestions or direct me.

 

  1. Modify the device tree (DTS) of u-boot
  1. Add EPWM node and LCD backlight controls

 

/{

        // lcd backlight pwm , ehpwm1

        lcd_bl: backlight {

                compatible = "pwm-backlight";

                pwms = <&epwm1 0 50000 0>;

                brightness-levels = <255 250 240 230 220 210 220 190 180 170 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 6>;

                default-brightness-level = <14>;

        };

        …

};

 

&main_pmx0 {

//Add folowing pinmux setting to declare the PIN "(B18) EHRPWM1_A or ECAP1_IN_APWM_OUT" is used for LCD Backlight PWM output.

main_lcd_dim_pin_default: lcd-dim-pins-default{

pinctrl-single,pins = <

AM62X_IOPAD(0x19C, PIN_OUTPUT, 6) /* (B18) EHRPWM1_A or ECAP1_IN_APWM_OUT */ /* LCD Panel PWM Dimming Control for Backlight*/

>;

};     

};

&epwm1 {

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&main_lcd_dim_pin_default>;

};

 

 

  1. Add Panel node for DPI Panel Device

 

/{

        panel_lcd: panel_lcd{

                bootph-pre-ram;

                compatible = "simple-panel";

                //compatible = "jspf,ph800480";

                status= "okay";

                backlight = <&lcd_bl>;

                width-mm = <217>;

                height-mm = <136>;

                data-mapping = "vesa-24";

                panel-timings {

                                bootph-pre-ram;

                                clock-frequency = <150274>;

                                hactive = <800>;

                                vactive = <480>;

                                hback-porch = <32>;

                                hfront-porch = <52>;

                                vback-porch = <24>;

                                vfront-porch = <8>;

                                hsync-len = <24>;

                                vsync-len = <3>;

                                de-active = <1>;

                };

                port {

                        lcd_in0: endpoint {

                                remote-endpoint = <&dpi1_out>;

                        };

                };

        };

};

 

  1. Add DSS and make it associate with DPI panel

 

&dss_ports {

        #address-cells = <1>;

        #size-cells = <0>;

        /* VP1: DPI Output */

        port@1 {

                reg = <1>;

                dpi1_out: endpoint {

                        remote-endpoint = <&lcd_in0>;

                };

        };

};

 

  1. Add simple panel support and related modules in menuconfig of u-boot

 

CONFIG_VIDEO_LOGO=y

CONFIG_BACKLIGHT=y

CONFIG_VIDEO_BPP8=y

CONFIG_VIDEO_BPP16=y

CONFIG_VIDEO_BPP32=y

CONFIG_VIDEO_ANSI=y

CONFIG_PANEL=y

CONFIG_SIMPLE_PANEL=y

 

 

It looks I missed some steps, the DPI panel cannot work, is there anything I can check to identify problems?

Thanks

Daniel