summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sparmann <theseven@rockbox.org>2011-11-06 11:35:21 +0000
committerMichael Sparmann <theseven@rockbox.org>2011-11-06 11:35:21 +0000
commit2ce48832d88dfce6539500081b8916d5762c4c26 (patch)
tree6ecf474898c00ca9c096c9104cc2d277414743a8
parent5827937270bac874ae9e04679b3130fef9e306c4 (diff)
downloadrockbox-2ce48832d88dfce6539500081b8916d5762c4c26.zip
rockbox-2ce48832d88dfce6539500081b8916d5762c4c26.tar.gz
rockbox-2ce48832d88dfce6539500081b8916d5762c4c26.tar.bz2
rockbox-2ce48832d88dfce6539500081b8916d5762c4c26.tar.xz
iPod Classic: Set LCD controller configuration register during initialization and don't rely on the bootloader doing that (closes FS#12233)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30908 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/s5l8702.h1
-rw-r--r--firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/firmware/export/s5l8702.h b/firmware/export/s5l8702.h
index 7cc5646..338d7a5 100644
--- a/firmware/export/s5l8702.h
+++ b/firmware/export/s5l8702.h
@@ -562,6 +562,7 @@ struct dma_lli
/////LCD/////
#define LCD_BASE (0x38300000)
+#define LCD_CONFIG (*((uint32_t volatile*)(0x38300000)))
#define LCD_WCMD (*((uint32_t volatile*)(0x38300004)))
#define LCD_STATUS (*((uint32_t volatile*)(0x3830001c)))
#define LCD_WDATA (*((uint32_t volatile*)(0x38300040)))
diff --git a/firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c
index c9719af..3cc2c9d 100644
--- a/firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c
+++ b/firmware/target/arm/s5l8702/ipod6g/lcd-ipod6g.c
@@ -154,6 +154,8 @@ void lcd_init_device(void)
semaphore_init(&lcd_wakeup, 1, 0);
mutex_init(&lcd_mutex);
lcd_type = (PDAT6 & 0x30) >> 4;
+ while (!(LCD_STATUS & 0x2));
+ LCD_CONFIG = 0x80100db0;
}
/*** Update functions ***/