summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2008-10-12 16:55:57 +0000
committerFrank Gevaerts <frank@gevaerts.be>2008-10-12 16:55:57 +0000
commit2cc85bc346ba224253a9a1be2d9605dbc79940d9 (patch)
tree5fb8eab97e9990ceb8491b9b3ff8f1386f34c234
parent2ca30a0c745f0b50fe969fe0763816497289fa3e (diff)
downloadrockbox-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.c10
-rw-r--r--firmware/target/arm/s5l8700/meizu-m3/lcd-m3.c14
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