forked from len0rd/rockbox
Implement working lcd_off/lcd_on routine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18070 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
e3b2f4ffed
commit
753cac37b7
2 changed files with 60 additions and 9 deletions
|
|
@ -106,9 +106,24 @@
|
|||
#define ENTRY_MODE_AM (1 << 3)
|
||||
#define ENTRY_MODE_EPF(n) (n & 3)
|
||||
|
||||
#define DISP_CTRL1_PTDE(n) ((n & 4) << 12)
|
||||
#define DISP_CTRL1_BASEE (1 << 8)
|
||||
#define DISP_CTRL1_VON (1 << 6)
|
||||
#define DISP_CTRL1_GON (1 << 5)
|
||||
#define DISP_CTRL1_DTE (1 << 4)
|
||||
#define DISP_CTRL1_D(n) (n & 3)
|
||||
|
||||
#define PWR_CTRL1_SAP(n) ((n & 3) << 13)
|
||||
#define PWR_CTRL1_SAPE (1 << 12)
|
||||
#define PWR_CTRL1_BT(n) ((n & 7) << 8)
|
||||
#define PWR_CTRL1_APE (1 << 7)
|
||||
#define PWR_CTRL1_AP(n) ((n & 7) << 4)
|
||||
#define PWR_CTRL1_DSTB (1 << 2)
|
||||
#define PWR_CTRL1_SLP (1 << 1)
|
||||
|
||||
#define SOFT_RESET(n) (n << 0)
|
||||
|
||||
#define ENDIAN_CTRL_BIG
|
||||
#define ENDIAN_CTRL_LITTLE
|
||||
|
||||
#endif /* __R61509_H */
|
||||
#endif /* __R61509_H */
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ static void _display_pin_init(void)
|
|||
#define SLCD_SET_DATA(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_DATA;
|
||||
#define SLCD_SET_COMMAND(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_COMMAND;
|
||||
#define SLCD_SEND_COMMAND(cmd,val) SLCD_SET_COMMAND(cmd); SLCD_SET_DATA(val);
|
||||
static void _display_on(void)
|
||||
static void _display_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ static void _display_on(void)
|
|||
SLCD_SEND_COMMAND(REG_LPCTRL, 0x10);
|
||||
SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL1, 0);
|
||||
SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL2, 0);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, 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_CTRL2, 0x202);
|
||||
SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL3, 0x300);
|
||||
|
|
@ -83,7 +83,7 @@ static void _display_on(void)
|
|||
SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL5, 0x202);
|
||||
SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL6, 0x100);
|
||||
SLCD_SEND_COMMAND(REG_FRM_MRKR_CTRL, 0x8000);
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL1, 0x16b0);
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL1, (PWR_CTRL1_SAPE | PWR_CTRL1_BT(6) | PWR_CTRL1_APE | PWR_CTRL1_AP(3)));
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL2, 0x147);
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL3, 0x1bd);
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL4, 0x2f00);
|
||||
|
|
@ -131,14 +131,50 @@ static void _display_on(void)
|
|||
SLCD_SEND_COMMAND(0x7f5, 1);
|
||||
SLCD_SEND_COMMAND(0x7f0, 0);
|
||||
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, 0x173);
|
||||
/* LCD ON: */
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON
|
||||
| DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(3))
|
||||
);
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, 0x171);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON
|
||||
| DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(2))
|
||||
);
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, 0x173);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON
|
||||
| DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(3))
|
||||
);
|
||||
SLEEP(3500000);
|
||||
}
|
||||
|
||||
static void _display_on(void)
|
||||
{
|
||||
int i;
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL1, (PWR_CTRL1_SAPE | PWR_CTRL1_BT(6) | PWR_CTRL1_APE | PWR_CTRL1_AP(3)));
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_VON | DISP_CTRL1_GON
|
||||
| DISP_CTRL1_D(1))
|
||||
);
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_VON | DISP_CTRL1_GON
|
||||
| DISP_CTRL1_DTE | DISP_CTRL1_D(3)
|
||||
| DISP_CTRL1_BASEE)
|
||||
);
|
||||
}
|
||||
|
||||
static void _display_off(void)
|
||||
{
|
||||
int i;
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_VON | DISP_CTRL1_GON
|
||||
| DISP_CTRL1_DTE | DISP_CTRL1_D(2))
|
||||
);
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(1));
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(0));
|
||||
SLEEP(3500000);
|
||||
SLCD_SEND_COMMAND(REG_PWR_CTRL1, PWR_CTRL1_SLP);
|
||||
}
|
||||
|
||||
static void _set_lcd_bus(void)
|
||||
{
|
||||
REG_LCD_CFG &= ~LCD_CFG_LCDPIN_MASK;
|
||||
|
|
@ -177,7 +213,7 @@ void lcd_init_controller(void)
|
|||
_set_lcd_bus();
|
||||
_set_lcd_clock();
|
||||
SLEEP(1000);
|
||||
_display_on();
|
||||
_display_init();
|
||||
}
|
||||
|
||||
void lcd_set_target(short x, short y, short width, short height)
|
||||
|
|
@ -198,5 +234,5 @@ void lcd_on(void)
|
|||
|
||||
void lcd_off(void)
|
||||
{
|
||||
return;
|
||||
_display_off();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue