forked from len0rd/rockbox
Onda VX747: don't fully init the LCD when not doing an USB_BOOT compile (fixes flashes when booting up)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22051 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
9e9fb929b4
commit
4ce26ff328
2 changed files with 19 additions and 12 deletions
|
|
@ -22,7 +22,6 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "jz4740.h"
|
#include "jz4740.h"
|
||||||
#include "backlight.h"
|
#include "backlight.h"
|
||||||
#include "backlight-target.h"
|
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
#include "usb.h"
|
#include "usb.h"
|
||||||
|
|
@ -192,7 +191,6 @@ int main(void)
|
||||||
{
|
{
|
||||||
printf("Starting Rockbox...");
|
printf("Starting Rockbox...");
|
||||||
adc_close(); /* Disable SADC */
|
adc_close(); /* Disable SADC */
|
||||||
_backlight_off(); /* Force backlight off to prevent LCD 'flicker' */
|
|
||||||
|
|
||||||
disable_interrupt();
|
disable_interrupt();
|
||||||
kernel_entry = (void*) CONFIG_SDRAM_START;
|
kernel_entry = (void*) CONFIG_SDRAM_START;
|
||||||
|
|
|
||||||
|
|
@ -36,9 +36,9 @@ do { \
|
||||||
REG_GPIO_PXPES(2) = 0x001cffff; \
|
REG_GPIO_PXPES(2) = 0x001cffff; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
#define SLEEP(x) { register int __i; for(__i=0; __i<x; __i++) asm volatile("nop\n nop\n"); }
|
#define SLEEP(x) { register int __i; for(__i=0; __i<x; __i++) asm volatile("nop\n nop\n"); }
|
||||||
#define DELAY SLEEP(700000);
|
#define DELAY SLEEP(700000);
|
||||||
|
#ifdef USB_BOOT
|
||||||
static void _display_pin_init(void)
|
static void _display_pin_init(void)
|
||||||
{
|
{
|
||||||
my__gpio_as_lcd_16bit();
|
my__gpio_as_lcd_16bit();
|
||||||
|
|
@ -53,6 +53,7 @@ static void _display_pin_init(void)
|
||||||
__gpio_set_pin(PIN_RESET_N);
|
__gpio_set_pin(PIN_RESET_N);
|
||||||
DELAY;
|
DELAY;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define WAIT_ON_SLCD while(REG_SLCD_STATE & SLCD_STATE_BUSY);
|
#define WAIT_ON_SLCD while(REG_SLCD_STATE & SLCD_STATE_BUSY);
|
||||||
#define SLCD_SET_DATA(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_DATA;
|
#define SLCD_SET_DATA(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_DATA;
|
||||||
|
|
@ -60,6 +61,7 @@ static void _display_pin_init(void)
|
||||||
#define SLCD_SEND_COMMAND(cmd,val) SLCD_SET_COMMAND(cmd); SLCD_SET_DATA(val);
|
#define SLCD_SEND_COMMAND(cmd,val) SLCD_SET_COMMAND(cmd); SLCD_SET_DATA(val);
|
||||||
static void _display_init(void)
|
static void _display_init(void)
|
||||||
{
|
{
|
||||||
|
#ifdef USB_BOOT
|
||||||
SLCD_SEND_COMMAND(REG_SOFT_RESET, SOFT_RESET(1));
|
SLCD_SEND_COMMAND(REG_SOFT_RESET, SOFT_RESET(1));
|
||||||
SLEEP(700000);
|
SLEEP(700000);
|
||||||
SLCD_SEND_COMMAND(REG_SOFT_RESET, SOFT_RESET(0));
|
SLCD_SEND_COMMAND(REG_SOFT_RESET, SOFT_RESET(0));
|
||||||
|
|
@ -68,15 +70,19 @@ static void _display_init(void)
|
||||||
|
|
||||||
SLCD_SEND_COMMAND(REG_DRIVER_OUTPUT, 0x100);
|
SLCD_SEND_COMMAND(REG_DRIVER_OUTPUT, 0x100);
|
||||||
SLCD_SEND_COMMAND(REG_LCD_DR_WAVE_CTRL, 0x100);
|
SLCD_SEND_COMMAND(REG_LCD_DR_WAVE_CTRL, 0x100);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CONFIG_ORIENTATION == SCREEN_PORTRAIT
|
#if CONFIG_ORIENTATION == SCREEN_PORTRAIT
|
||||||
SLCD_SEND_COMMAND(REG_ENTRY_MODE, (ENTRY_MODE_BGR | ENTRY_MODE_VID | ENTRY_MODE_HID));
|
SLCD_SEND_COMMAND(REG_ENTRY_MODE, (ENTRY_MODE_BGR | ENTRY_MODE_VID | ENTRY_MODE_HID));
|
||||||
#else
|
#else
|
||||||
SLCD_SEND_COMMAND(REG_ENTRY_MODE, (ENTRY_MODE_BGR | ENTRY_MODE_VID | ENTRY_MODE_AM));
|
SLCD_SEND_COMMAND(REG_ENTRY_MODE, (ENTRY_MODE_BGR | ENTRY_MODE_VID | ENTRY_MODE_AM));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USB_BOOT
|
||||||
SLCD_SEND_COMMAND(REG_DISP_CTRL2, 0x503);
|
SLCD_SEND_COMMAND(REG_DISP_CTRL2, 0x503);
|
||||||
SLCD_SEND_COMMAND(REG_DISP_CTRL3, 1);
|
SLCD_SEND_COMMAND(REG_DISP_CTRL3, 1);
|
||||||
SLCD_SEND_COMMAND(REG_LPCTRL, 0x10);
|
SLCD_SEND_COMMAND(REG_LPCTRL, 0x10);
|
||||||
SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL1, 0);
|
SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL1, EXT_DISP_CTRL1_RIM(1)); /* 16-bit RGB interface */
|
||||||
SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL2, 0);
|
SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL2, 0);
|
||||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(1));
|
SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(1));
|
||||||
SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL1, 0x12);
|
SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL1, 0x12);
|
||||||
|
|
@ -138,6 +144,7 @@ static void _display_init(void)
|
||||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON |
|
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON |
|
||||||
DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(3)));
|
DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(3)));
|
||||||
SLEEP(3500000);
|
SLEEP(3500000);
|
||||||
|
#endif /* USB_BOOT */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _display_on(void)
|
static void _display_on(void)
|
||||||
|
|
@ -190,7 +197,9 @@ static void _set_lcd_clock(void)
|
||||||
|
|
||||||
void lcd_init_controller(void)
|
void lcd_init_controller(void)
|
||||||
{
|
{
|
||||||
|
#ifdef USB_BOOT
|
||||||
_display_pin_init();
|
_display_pin_init();
|
||||||
|
#endif
|
||||||
_set_lcd_bus();
|
_set_lcd_bus();
|
||||||
_set_lcd_clock();
|
_set_lcd_clock();
|
||||||
SLEEP(1000);
|
SLEEP(1000);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue