summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
diff options
context:
space:
mode:
authorAmaury Pouly <pamaury@rockbox.org>2011-11-10 17:29:57 +0000
committerAmaury Pouly <pamaury@rockbox.org>2011-11-10 17:29:57 +0000
commit7aac4188d2fbb3b72e36b7daa9a9a50cf67333d6 (patch)
treec6696ef9fd3a120eb6fa42d056834add4a751a83 /firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
parent0d2484bedb0e08eb5c659eccca4a24ef127bf3e1 (diff)
downloadrockbox-7aac4188d2fbb3b72e36b7daa9a9a50cf67333d6.tar.gz
rockbox-7aac4188d2fbb3b72e36b7daa9a9a50cf67333d6.zip
fuze+: fix typo (mdelay vs udelay) in register read (shouldn't change anything) and be sure lcdif is ready
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30958 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c')
-rw-r--r--firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
index 9b914d6945..6bc6252506 100644
--- a/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
+++ b/firmware/target/arm/imx233/sansa-fuzeplus/lcd-fuzeplus.c
@@ -164,39 +164,40 @@ static void setup_lcdif_clock(void)
static uint32_t i80_read_register(uint32_t data_out)
{
+ imx233_lcdif_wait_ready();
/* lcd_enable is mapped to the RD pin of the controller */
imx233_set_gpio_output(1, 21, true); /* lcd_cs */
imx233_set_gpio_output(1, 19, true); /* lcd_rs */
imx233_set_gpio_output(1, 23, true); /* lcd_enable */
imx233_set_gpio_output(1, 20, true); /* lcd_wr */
imx233_enable_gpio_output_mask(1, 0x3ffff, true); /* lcd_d{0-17} */
- mdelay(2);
+ udelay(2);
imx233_set_gpio_output(1, 19, false); /* lcd_rs */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 21, false); /* lcd_cs */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 20, false); /* lcd_wr */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output_mask(1, data_out & 0x3ffff, true); /* lcd_d{0-17} */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 20, true); /* lcd_wr */
- mdelay(3);
+ udelay(3);
imx233_enable_gpio_output_mask(1, 0x3ffff, false); /* lcd_d{0-17} */
- mdelay(2);
+ udelay(2);
imx233_set_gpio_output(1, 23, false); /* lcd_enable */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 19, true); /* lcd_rs */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 23, true); /* lcd_enable */
- mdelay(3);
+ udelay(3);
imx233_set_gpio_output(1, 23, false); /* lcd_enable */
- mdelay(2);
+ udelay(2);
uint32_t data_in = imx233_get_gpio_input_mask(1, 0x3ffff); /* lcd_d{0-17} */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 23, true); /* lcd_enable */
- mdelay(1);
+ udelay(1);
imx233_set_gpio_output(1, 21, true); /* lcd_cs */
- mdelay(1);
+ udelay(1);
return data_in;
}
@@ -372,10 +373,10 @@ void lcd_init_device(void)
for(int i = 0; i < 10; i++)
{
lcd_kind = lcd_read_reg(0);
+ mdelay(5);
if(lcd_kind == LCD_KIND_7783 || lcd_kind == LCD_KIND_9325)
break;
}
- mdelay(5);
switch(lcd_kind)
{
case LCD_KIND_7783: lcd_init_seq_7783(); break;