diff options
| author | Rob Purchase <shotofadds@rockbox.org> | 2008-10-13 20:25:16 +0000 |
|---|---|---|
| committer | Rob Purchase <shotofadds@rockbox.org> | 2008-10-13 20:25:16 +0000 |
| commit | 14a6fd9bbe9c80edbc3b414e47376a20908cdba1 (patch) | |
| tree | 6f9062b9b9441100b1a8cfcfbbbdd95137491b5e | |
| parent | 7470797b3757e851fe88d713aaa832d18be17c7a (diff) | |
| download | rockbox-14a6fd9bbe9c80edbc3b414e47376a20908cdba1.zip rockbox-14a6fd9bbe9c80edbc3b414e47376a20908cdba1.tar.gz rockbox-14a6fd9bbe9c80edbc3b414e47376a20908cdba1.tar.bz2 rockbox-14a6fd9bbe9c80edbc3b414e47376a20908cdba1.tar.xz | |
Hopefully fix the D2s 'cut and repeated LCD lines' bug (fix suggested by Francesco Rigoni).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18801 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | docs/CREDITS | 1 | ||||
| -rw-r--r-- | firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c | 14 |
2 files changed, 14 insertions, 1 deletions
diff --git a/docs/CREDITS b/docs/CREDITS index 121b030..53addf0 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -424,6 +424,7 @@ Denes Balatoni Roy Wallace Eric Lassauge François Dinel +Francesco Rigoni The libmad team The wavpack team diff --git a/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c b/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c index 70d823a..b41117c 100644 --- a/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c +++ b/firmware/target/arm/tcc780x/cowond2/lcd-cowond2.c @@ -73,24 +73,36 @@ void lcd_set_contrast(int val) /* LTV250QV panel functions */ +/* Delay loop based on CPU frequency (FREQ>>23 is 3..22 for 32MHz..192MHz) */ +static void delay_loop(void) +{ + unsigned long x; + for (x = (unsigned)(FREQ>>23); x; x--); +} +#define DELAY delay_loop() + static void ltv250qv_write(unsigned int command) { int i; GPIOA_CLEAR = LTV250QV_CS; + DELAY; for (i = 23; i >= 0; i--) { GPIOA_CLEAR = LTV250QV_SCL; + DELAY; if ((command>>i) & 1) GPIOA_SET = LTV250QV_SDI; else GPIOA_CLEAR = LTV250QV_SDI; + DELAY; GPIOA_SET = LTV250QV_SCL; } + DELAY; GPIOA_SET = LTV250QV_CS; } @@ -162,7 +174,7 @@ static void lcd_display_on(void) lcd_write_reg(3, 0xE100); lcd_write_reg(4, 0x1000); lcd_write_reg(5, 0x5033); - lcd_write_reg(6, 0x4); + lcd_write_reg(6, 0x2); /* vertical back porch adjusted from 0x4 in OF */ lcd_write_reg(7, 0x30); lcd_write_reg(8, 0x41C); lcd_write_reg(16, 0x207); |