summaryrefslogtreecommitdiffstats
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.tar.bz2
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)
static void lcd_init_seq_9325(void)
{
-
+ lcd_write_reg(0xe5, 0x78f0);
+ lcd_write_reg(0xe3, 0x3008);
+ lcd_write_reg(0xe7, 0x12);
+ lcd_write_reg(0xef, 0x1231);
+ lcd_write_reg(0, 1);
+ lcd_write_reg(1, 0x100);
+ lcd_write_reg(2, 0x700);
+ lcd_write_reg(3, 0x1030);
+ lcd_write_reg(4, 0);
+ lcd_write_reg(8, 0x207);
+ lcd_write_reg(9, 0);
+ lcd_write_reg(0xa, 0);
+ lcd_write_reg(0xc, 0);
+ lcd_write_reg(0xd, 0);
+ lcd_write_reg(0xf, 0);
+ lcd_write_reg(0x10, 0);
+ lcd_write_reg(0x11, 7);
+ lcd_write_reg(0x12, 0);
+ lcd_write_reg(0x13, 0);
+ mdelay(20);
+ lcd_write_reg(0x10, 0x1290);
+ lcd_write_reg(0x11, 7);
+ mdelay(50);
+ lcd_write_reg(0x12, 0x19);
+ mdelay(50);
+ lcd_write_reg(0x13, 0x1700);
+ lcd_write_reg(0x29, 0x14);
+ mdelay(50);
+ lcd_write_reg(0x20, 0);
+ lcd_write_reg(0x21, 0);
+ lcd_write_reg(0x30, 0x504);
+ lcd_write_reg(0x31, 7);
+ lcd_write_reg(0x32, 6);
+ lcd_write_reg(0x35, 0x106);
+ lcd_write_reg(0x36, 0x202);
+ lcd_write_reg(0x37, 0x504);
+ lcd_write_reg(0x38, 0x500);
+ lcd_write_reg(0x39, 0x706);
+ lcd_write_reg(0x3c, 0x204);
+ lcd_write_reg(0x3d, 0x202);
+ lcd_write_reg(0x50, 0);
+ lcd_write_reg(0x51, 0xef);
+ lcd_write_reg(0x52, 0);
+ lcd_write_reg(0x53, 0x13f);
+ lcd_write_reg(0x60, 0xa700);
+ lcd_write_reg(0x61, 1);
+ lcd_write_reg(0x6a, 1);
+ lcd_write_reg(0x2b, 0xd);
+ mdelay(50);
+ lcd_write_reg(0x90, 0x11);
+ lcd_write_reg(0x92, 0x600);
+ lcd_write_reg(0x93, 3);
+ lcd_write_reg(0x95, 0x110);
+ lcd_write_reg(0x97, 0);
+ lcd_write_reg(0x98, 0);
+ lcd_write_reg(7, 0x173);
+ lcd_write_reg(0x22, 0);
}
void lcd_init_device(void)
@@ -333,7 +389,39 @@ static void lcd_enable_7783(bool enable)
static void lcd_enable_9325(bool enable)
{
- (void) enable;
+ if(!enable)
+ {
+ lcd_write_reg(7, 0x131);
+ mdelay(10);
+ lcd_write_reg(7, 0x130);
+ mdelay(10);
+ lcd_write_reg(7, 0);
+ lcd_write_reg(0x10, 0x80);
+ lcd_write_reg(0x11, 0);
+ lcd_write_reg(0x12, 0);
+ lcd_write_reg(0x13, 0);
+ mdelay(200);
+ lcd_write_reg(0x10, 0x82);
+ }
+ else
+ {
+ lcd_write_reg(0x10, 0x80);
+ lcd_write_reg(0x11, 0);
+ lcd_write_reg(0x12, 0);
+ lcd_write_reg(0x13, 0);
+ lcd_write_reg(7, 1);
+ mdelay(200);
+ lcd_write_reg(0x10, 0x1290);
+ lcd_write_reg(0x11, 7);
+ mdelay(50);
+ lcd_write_reg(0x12, 0x19);
+ mdelay(50);
+ lcd_write_reg(0x13, 0x1700);
+ lcd_write_reg(0x29, 0x10);
+ mdelay(50);
+ lcd_write_reg(7, 0x133);
+ lcd_write_reg(0x22, 0);
+ }
}
void lcd_enable(bool enable)