mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-28 23:23:30 +08:00
drivers/video/am335x-fb: Add possibility to wait for stable power/picture
Often on boards exists a circuit which switches power on/off to LCD display. Due to the need of limiting the in-rush current the output voltage from this circuit rises "slowly", so it is necessary to wait a bit (VCC ramp up time) before starting output on LCD-pins. This time is specified in <n> ms within the panel-settings, called "pup_delay" Further some LCDs need a couple of frames to stabilize the image on it. We have now the possibility to wait some time after starting output on LCD. This time is also specified in <n> ms within panel-settings, called "pon_delay" Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
This commit is contained in:
parent
5822f5ae7f
commit
3b4e16eb53
@ -127,6 +127,12 @@ int am335xfb_init(struct am335x_lcdpanel *panel)
|
||||
memset((void *)gd->fb_base, 0, 0x20);
|
||||
*(unsigned int *)gd->fb_base = 0x4000;
|
||||
|
||||
/* turn ON display through powercontrol function if accessible */
|
||||
if (0 != panel->panel_power_ctrl)
|
||||
panel->panel_power_ctrl(1);
|
||||
|
||||
debug("am335x-fb: wait for stable power ...\n");
|
||||
mdelay(panel->pup_delay);
|
||||
lcdhw->clkc_enable = LCD_CORECLKEN | LCD_LIDDCLKEN | LCD_DMACLKEN;
|
||||
lcdhw->raster_ctrl = 0;
|
||||
lcdhw->ctrl = LCD_CLK_DIVISOR(panel->pxl_clk_div) | LCD_RASTER_MODE;
|
||||
@ -159,11 +165,8 @@ int am335xfb_init(struct am335x_lcdpanel *panel)
|
||||
|
||||
gd->fb_base += 0x20; /* point fb behind palette */
|
||||
|
||||
/* turn ON display through powercontrol function if accessible */
|
||||
if (0 != panel->panel_power_ctrl) {
|
||||
mdelay(panel->pon_delay);
|
||||
panel->panel_power_ctrl(1);
|
||||
}
|
||||
debug("am335x-fb: waiting picture to be stable.\n.");
|
||||
mdelay(panel->pon_delay);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -55,9 +55,14 @@ struct am335x_lcdpanel {
|
||||
unsigned int vsw; /* Vertical Sync Pulse Width */
|
||||
unsigned int pxl_clk_div; /* Pixel clock divider*/
|
||||
unsigned int pol; /* polarity of sync, clock signals */
|
||||
unsigned int pup_delay; /*
|
||||
* time in ms after power on to
|
||||
* initialization of lcd-controller
|
||||
* (VCC ramp up time)
|
||||
*/
|
||||
unsigned int pon_delay; /*
|
||||
* time in ms for turning on lcd after
|
||||
* initializing lcd-controller
|
||||
* time in ms after initialization of
|
||||
* lcd-controller (pic stabilization)
|
||||
*/
|
||||
void (*panel_power_ctrl)(int); /* fp for power on/off display */
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user