mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 13:15:18 -05:00
Fix iPod Classic LCD problems
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29009 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
1b275d8ddb
commit
dd6990d698
1 changed files with 33 additions and 34 deletions
|
|
@ -56,7 +56,7 @@ static inline void s5l_lcd_write_cmd_data(int cmd, int data)
|
||||||
LCD_WCMD = cmd;
|
LCD_WCMD = cmd;
|
||||||
|
|
||||||
while (LCD_STATUS & 0x10);
|
while (LCD_STATUS & 0x10);
|
||||||
LCD_WDATA = data;
|
LCD_WDATA = (data & 0xff) | ((data & 0x7f00) << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void s5l_lcd_write_cmd(unsigned short cmd)
|
static inline void s5l_lcd_write_cmd(unsigned short cmd)
|
||||||
|
|
@ -103,34 +103,34 @@ void lcd_shutdown(void)
|
||||||
pmu_write(0x2b, 0); /* Kill the backlight, instantly. */
|
pmu_write(0x2b, 0); /* Kill the backlight, instantly. */
|
||||||
pmu_write(0x29, 0);
|
pmu_write(0x29, 0);
|
||||||
|
|
||||||
if (lcd_type == 3)
|
if (lcd_type & 2)
|
||||||
{
|
{
|
||||||
s5l_lcd_write_cmd_data(0x7, 0x172);
|
s5l_lcd_write_cmd_data(0x7, 0x172);
|
||||||
s5l_lcd_write_cmd_data(0x30, 0x3ff);
|
s5l_lcd_write_cmd_data(0x30, 0x3ff);
|
||||||
sleep(HZ / 10);
|
sleep(HZ / 10);
|
||||||
s5l_lcd_write_cmd_data(0x7, 0x120);
|
s5l_lcd_write_cmd_data(0x7, 0x120);
|
||||||
s5l_lcd_write_cmd_data(0x30, 0x0);
|
s5l_lcd_write_cmd_data(0x30, 0x0);
|
||||||
s5l_lcd_write_cmd_data(0x100, 0x780);
|
s5l_lcd_write_cmd_data(0x100, 0x780);
|
||||||
s5l_lcd_write_cmd_data(0x7, 0x0);
|
s5l_lcd_write_cmd_data(0x7, 0x0);
|
||||||
s5l_lcd_write_cmd_data(0x101, 0x260);
|
s5l_lcd_write_cmd_data(0x101, 0x260);
|
||||||
s5l_lcd_write_cmd_data(0x102, 0xa9);
|
s5l_lcd_write_cmd_data(0x102, 0xa9);
|
||||||
sleep(HZ / 30);
|
sleep(HZ / 30);
|
||||||
s5l_lcd_write_cmd_data(0x100, 0x700);
|
s5l_lcd_write_cmd_data(0x100, 0x700);
|
||||||
s5l_lcd_write_cmd_data(0x100, 0x704);
|
s5l_lcd_write_cmd_data(0x100, 0x704);
|
||||||
}
|
}
|
||||||
else if (lcd_type == 1)
|
else if (lcd_type == 1)
|
||||||
{
|
{
|
||||||
s5l_lcd_write_cmd(0x28);
|
s5l_lcd_write_cmd(0x28);
|
||||||
s5l_lcd_write_cmd(0x10);
|
s5l_lcd_write_cmd(0x10);
|
||||||
sleep(HZ / 10);
|
sleep(HZ / 10);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s5l_lcd_write_cmd(0x28);
|
s5l_lcd_write_cmd(0x28);
|
||||||
sleep(HZ / 20);
|
sleep(HZ / 20);
|
||||||
s5l_lcd_write_cmd(0x10);
|
s5l_lcd_write_cmd(0x10);
|
||||||
sleep(HZ / 20);
|
sleep(HZ / 20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcd_sleep(void)
|
void lcd_sleep(void)
|
||||||
|
|
@ -187,8 +187,8 @@ void lcd_update_rect(int x, int y, int width, int height)
|
||||||
s5l_lcd_write_cmd_data(R_VERT_ADDR_START_POS, y0);
|
s5l_lcd_write_cmd_data(R_VERT_ADDR_START_POS, y0);
|
||||||
s5l_lcd_write_cmd_data(R_VERT_ADDR_END_POS, y1);
|
s5l_lcd_write_cmd_data(R_VERT_ADDR_END_POS, y1);
|
||||||
|
|
||||||
s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, (x1 << 8) | x0);
|
s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, x0);
|
||||||
s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, (y1 << 8) | y0);
|
s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, y0);
|
||||||
|
|
||||||
s5l_lcd_write_cmd(R_WRITE_DATA_TO_GRAM);
|
s5l_lcd_write_cmd(R_WRITE_DATA_TO_GRAM);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -253,10 +253,9 @@ void lcd_blit_yuv(unsigned char * const src[3],
|
||||||
s5l_lcd_write_cmd_data(R_VERT_ADDR_START_POS, y0);
|
s5l_lcd_write_cmd_data(R_VERT_ADDR_START_POS, y0);
|
||||||
s5l_lcd_write_cmd_data(R_VERT_ADDR_END_POS, y1);
|
s5l_lcd_write_cmd_data(R_VERT_ADDR_END_POS, y1);
|
||||||
|
|
||||||
s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, (x1 << 8) | x0);
|
s5l_lcd_write_cmd_data(R_HORIZ_GRAM_ADDR_SET, x0);
|
||||||
s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, (y1 << 8) | y0);
|
s5l_lcd_write_cmd_data(R_VERT_GRAM_ADDR_SET, y0);
|
||||||
|
|
||||||
s5l_lcd_write_cmd(0);
|
|
||||||
s5l_lcd_write_cmd(R_WRITE_DATA_TO_GRAM);
|
s5l_lcd_write_cmd(R_WRITE_DATA_TO_GRAM);
|
||||||
} else {
|
} else {
|
||||||
s5l_lcd_write_cmd(R_COLUMN_ADDR_SET);
|
s5l_lcd_write_cmd(R_COLUMN_ADDR_SET);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue