diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2008-10-12 16:55:57 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2008-10-12 16:55:57 +0000 |
commit | 2cc85bc346ba224253a9a1be2d9605dbc79940d9 (patch) | |
tree | 5fb8eab97e9990ceb8491b9b3ff8f1386f34c234 | |
parent | 2ca30a0c745f0b50fe969fe0763816497289fa3e (diff) | |
download | rockbox-2cc85bc346ba224253a9a1be2d9605dbc79940d9.tar.gz rockbox-2cc85bc346ba224253a9a1be2d9605dbc79940d9.zip |
Fix LCD timings on the older meizu M3 variant, so it works with a fast clock.
(FS#9484, by Denes Balatoni)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18784 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | bootloader/meizu_m3.c | 10 | ||||
-rw-r--r-- | firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c | 14 |
2 files changed, 12 insertions, 12 deletions
diff --git a/bootloader/meizu_m3.c b/bootloader/meizu_m3.c index c88494448c..8e3a7f64c8 100644 --- a/bootloader/meizu_m3.c +++ b/bootloader/meizu_m3.c | |||
@@ -106,15 +106,15 @@ void main(void) | |||
106 | char mystring[64]; | 106 | char mystring[64]; |
107 | int tmpval; | 107 | int tmpval; |
108 | 108 | ||
109 | /* set clock to 200 MHz */ | 109 | /* set fclk = 200MHz, hclk = 100MHz, pclk = 50MHz, others off */ |
110 | #if 0 | ||
111 | CLKCON = 0x00800080; | 110 | CLKCON = 0x00800080; |
112 | CLKCON2= 0x00; | 111 | PLLCON = 0; |
113 | PLL0PMS = 0x1ad200; | 112 | PLL0PMS = 0x1ad200; |
113 | PLL0LCNT = 8100; | ||
114 | PLLCON = 1; | 114 | PLLCON = 1; |
115 | while (!(PLLLOCK & 1)) ; | 115 | while (!(PLLLOCK & 1)) ; |
116 | CLKCON = 0x20802080; | 116 | CLKCON2= 0x80; |
117 | #endif | 117 | CLKCON = 0x20803180; |
118 | 118 | ||
119 | /* mask all interrupts | 119 | /* mask all interrupts |
120 | this is done, because the lcd framebuffer | 120 | this is done, because the lcd framebuffer |
diff --git a/firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c b/firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c index 88147e9b16..39b8f9b278 100644 --- a/firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c +++ b/firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c | |||
@@ -96,7 +96,7 @@ void lcd_on() { | |||
96 | lcd_sleep(70000); | 96 | lcd_sleep(70000); |
97 | lcd_writereg(0x7, 0x21); | 97 | lcd_writereg(0x7, 0x21); |
98 | lcd_writereg(0x12, 0x1137); | 98 | lcd_writereg(0x12, 0x1137); |
99 | lcd_sleep(70000); | 99 | lcd_sleep(700000); |
100 | lcd_writereg(0x7, 0x233); | 100 | lcd_writereg(0x7, 0x233); |
101 | } | 101 | } |
102 | } | 102 | } |
@@ -128,9 +128,9 @@ void lcd_init_device(void) | |||
128 | 128 | ||
129 | /* detect lcd type */ | 129 | /* detect lcd type */ |
130 | LCD_WCMD = 0x1; | 130 | LCD_WCMD = 0x1; |
131 | lcd_sleep(16667); | 131 | lcd_sleep(166670); |
132 | LCD_WCMD = 0x11; | 132 | LCD_WCMD = 0x11; |
133 | lcd_sleep(20000); | 133 | lcd_sleep(2000040); |
134 | lcd_readdata(); | 134 | lcd_readdata(); |
135 | LCD_WCMD = 0x4; | 135 | LCD_WCMD = 0x4; |
136 | lcd_sleep(100); | 136 | lcd_sleep(100); |
@@ -165,9 +165,9 @@ void lcd_init_device(void) | |||
165 | LCD_WCMD = 0x0; | 165 | LCD_WCMD = 0x0; |
166 | LCD_WCMD = 0x0; | 166 | LCD_WCMD = 0x0; |
167 | LCD_WCMD = 0x0; | 167 | LCD_WCMD = 0x0; |
168 | lcd_sleep(7000); | 168 | lcd_sleep(700000); |
169 | lcd_writereg(0xa4, 0x1); | 169 | lcd_writereg(0xa4, 0x1); |
170 | lcd_sleep(11000); | 170 | lcd_sleep(1100000); |
171 | lcd_writereg(0x1, 0x100); | 171 | lcd_writereg(0x1, 0x100); |
172 | lcd_writereg(0x2, 0x300); | 172 | lcd_writereg(0x2, 0x300); |
173 | lcd_writereg(0x3, 0x9230); | 173 | lcd_writereg(0x3, 0x9230); |
@@ -227,7 +227,7 @@ void lcd_init_device(void) | |||
227 | lcd_writereg(0x9b, 0x300); | 227 | lcd_writereg(0x9b, 0x300); |
228 | LCD_WCMD = 0x0; | 228 | LCD_WCMD = 0x0; |
229 | LCD_WCMD = 0x22; | 229 | LCD_WCMD = 0x22; |
230 | lcd_sleep(7000); | 230 | lcd_sleep(700000); |
231 | lcd_on(); | 231 | lcd_on(); |
232 | } | 232 | } |
233 | } | 233 | } |
@@ -291,7 +291,7 @@ void lcd_update(void) | |||
291 | LCD_WDATA = RGB_UNPACK_RED(*p)<<3; | 291 | LCD_WDATA = RGB_UNPACK_RED(*p)<<3; |
292 | LCD_WDATA = RGB_UNPACK_GREEN(*p)<<2; | 292 | LCD_WDATA = RGB_UNPACK_GREEN(*p)<<2; |
293 | LCD_WDATA = RGB_UNPACK_BLUE(*p)<<3; | 293 | LCD_WDATA = RGB_UNPACK_BLUE(*p)<<3; |
294 | lcd_sleep(1); /* if data is sent too fast to lcdif, machine freezes */ | 294 | lcd_sleep(3); /* if data is sent too fast to lcdif, machine freezes */ |
295 | } | 295 | } |
296 | } | 296 | } |
297 | 297 | ||