summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorAmaury Pouly <pamaury@rockbox.org>2011-05-10 17:22:01 +0000
committerAmaury Pouly <pamaury@rockbox.org>2011-05-10 17:22:01 +0000
commit2481427b039ec71d46a3cc160cce02b99054d6e7 (patch)
treeccc91d383739e78a857d1915c749e12fea745d68 /firmware
parent6a24a7a90363bfbf4c5a0be0585da425506adfab (diff)
downloadrockbox-2481427b039ec71d46a3cc160cce02b99054d6e7.tar.gz
rockbox-2481427b039ec71d46a3cc160cce02b99054d6e7.zip
fuze+: add init/enable/disable lcd sequences for the second lcd kind (only based on disassembly, untested)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29852 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c92
1 files changed, 90 insertions, 2 deletions
diff --git a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
index 74cfa08712..f2fbf706d7 100644
--- a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
+++ b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
@@ -268,7 +268,63 @@ static void lcd_init_seq_7783(void)
268 268
269static void lcd_init_seq_9325(void) 269static void lcd_init_seq_9325(void)
270{ 270{
271 271 lcd_write_reg(0xe5, 0x78f0);
272 lcd_write_reg(0xe3, 0x3008);
273 lcd_write_reg(0xe7, 0x12);
274 lcd_write_reg(0xef, 0x1231);
275 lcd_write_reg(0, 1);
276 lcd_write_reg(1, 0x100);
277 lcd_write_reg(2, 0x700);
278 lcd_write_reg(3, 0x1030);
279 lcd_write_reg(4, 0);
280 lcd_write_reg(8, 0x207);
281 lcd_write_reg(9, 0);
282 lcd_write_reg(0xa, 0);
283 lcd_write_reg(0xc, 0);
284 lcd_write_reg(0xd, 0);
285 lcd_write_reg(0xf, 0);
286 lcd_write_reg(0x10, 0);
287 lcd_write_reg(0x11, 7);
288 lcd_write_reg(0x12, 0);
289 lcd_write_reg(0x13, 0);
290 mdelay(20);
291 lcd_write_reg(0x10, 0x1290);
292 lcd_write_reg(0x11, 7);
293 mdelay(50);
294 lcd_write_reg(0x12, 0x19);
295 mdelay(50);
296 lcd_write_reg(0x13, 0x1700);
297 lcd_write_reg(0x29, 0x14);
298 mdelay(50);
299 lcd_write_reg(0x20, 0);
300 lcd_write_reg(0x21, 0);
301 lcd_write_reg(0x30, 0x504);
302 lcd_write_reg(0x31, 7);
303 lcd_write_reg(0x32, 6);
304 lcd_write_reg(0x35, 0x106);
305 lcd_write_reg(0x36, 0x202);
306 lcd_write_reg(0x37, 0x504);
307 lcd_write_reg(0x38, 0x500);
308 lcd_write_reg(0x39, 0x706);
309 lcd_write_reg(0x3c, 0x204);
310 lcd_write_reg(0x3d, 0x202);
311 lcd_write_reg(0x50, 0);
312 lcd_write_reg(0x51, 0xef);
313 lcd_write_reg(0x52, 0);
314 lcd_write_reg(0x53, 0x13f);
315 lcd_write_reg(0x60, 0xa700);
316 lcd_write_reg(0x61, 1);
317 lcd_write_reg(0x6a, 1);
318 lcd_write_reg(0x2b, 0xd);
319 mdelay(50);
320 lcd_write_reg(0x90, 0x11);
321 lcd_write_reg(0x92, 0x600);
322 lcd_write_reg(0x93, 3);
323 lcd_write_reg(0x95, 0x110);
324 lcd_write_reg(0x97, 0);
325 lcd_write_reg(0x98, 0);
326 lcd_write_reg(7, 0x173);
327 lcd_write_reg(0x22, 0);
272} 328}
273 329
274void lcd_init_device(void) 330void lcd_init_device(void)
@@ -333,7 +389,39 @@ static void lcd_enable_7783(bool enable)
333 389
334static void lcd_enable_9325(bool enable) 390static void lcd_enable_9325(bool enable)
335{ 391{
336 (void) enable; 392 if(!enable)
393 {
394 lcd_write_reg(7, 0x131);
395 mdelay(10);
396 lcd_write_reg(7, 0x130);
397 mdelay(10);
398 lcd_write_reg(7, 0);
399 lcd_write_reg(0x10, 0x80);
400 lcd_write_reg(0x11, 0);
401 lcd_write_reg(0x12, 0);
402 lcd_write_reg(0x13, 0);
403 mdelay(200);
404 lcd_write_reg(0x10, 0x82);
405 }
406 else
407 {
408 lcd_write_reg(0x10, 0x80);
409 lcd_write_reg(0x11, 0);
410 lcd_write_reg(0x12, 0);
411 lcd_write_reg(0x13, 0);
412 lcd_write_reg(7, 1);
413 mdelay(200);
414 lcd_write_reg(0x10, 0x1290);
415 lcd_write_reg(0x11, 7);
416 mdelay(50);
417 lcd_write_reg(0x12, 0x19);
418 mdelay(50);
419 lcd_write_reg(0x13, 0x1700);
420 lcd_write_reg(0x29, 0x10);
421 mdelay(50);
422 lcd_write_reg(7, 0x133);
423 lcd_write_reg(0x22, 0);
424 }
337} 425}
338 426
339void lcd_enable(bool enable) 427void lcd_enable(bool enable)