summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2007-03-18 17:58:49 +0000
committerJens Arnold <amiconn@rockbox.org>2007-03-18 17:58:49 +0000
commitcb1c9e447ef03ecc7171b512a6aa5754e1e8dd61 (patch)
treed688c8160f70b7a0ce6579a281fefe9fef769c61 /firmware/drivers
parentf1bf798b8aa8af2b366060aa6fee81beafdaf3bb (diff)
downloadrockbox-cb1c9e447ef03ecc7171b512a6aa5754e1e8dd61.tar.gz
rockbox-cb1c9e447ef03ecc7171b512a6aa5754e1e8dd61.zip
Archos player: Introduce lcd_write_command_e (only one data byte) in the lcd driver, for cleaner C code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12835 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd-player.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/firmware/drivers/lcd-player.c b/firmware/drivers/lcd-player.c
index c863c9f188..dd99246611 100644
--- a/firmware/drivers/lcd-player.c
+++ b/firmware/drivers/lcd-player.c
@@ -106,8 +106,6 @@ unsigned short buffer_lcd_mirror[11][2];
106 106
107#ifdef SIMULATOR 107#ifdef SIMULATOR
108unsigned char hardware_buffer_lcd[11][2]; 108unsigned char hardware_buffer_lcd[11][2];
109#else
110static unsigned char lcd_data_byte; /* global write buffer */
111#endif 109#endif
112 110
113#define NO_CHAR -1 111#define NO_CHAR -1
@@ -133,8 +131,7 @@ static void lcd_free_pat(int map_ch)
133#ifdef SIMULATOR 131#ifdef SIMULATOR
134 hardware_buffer_lcd[x][y]=substitute_char; 132 hardware_buffer_lcd[x][y]=substitute_char;
135#else 133#else
136 lcd_write_command(LCD_CURSOR(x, y)); 134 lcd_write_command_e(LCD_CURSOR(x, y), substitute_char);
137 lcd_write_data(&substitute_char, 1);
138#endif 135#endif
139 } 136 }
140 } 137 }
@@ -231,8 +228,7 @@ void xlcd_update(void)
231#ifdef SIMULATOR 228#ifdef SIMULATOR
232 hardware_buffer_lcd[x][y]=hw_ch; 229 hardware_buffer_lcd[x][y]=hw_ch;
233#else 230#else
234 lcd_write_command(LCD_CURSOR(x,y)); 231 lcd_write_command_e(LCD_CURSOR(x,y), hw_ch);
235 lcd_write_data(&hw_ch, 1);
236#endif 232#endif
237 } 233 }
238 } 234 }
@@ -265,9 +261,7 @@ bool lcdx_putc(int x, int y, unsigned short ch)
265#ifdef SIMULATOR 261#ifdef SIMULATOR
266 hardware_buffer_lcd[x][y]=lcd_char; 262 hardware_buffer_lcd[x][y]=lcd_char;
267#else 263#else
268 lcd_data_byte = (unsigned char) lcd_char; 264 lcd_write_command_e(LCD_CURSOR(x, y), lcd_char);
269 lcd_write_command(LCD_CURSOR(x, y));
270 lcd_write_data(&lcd_data_byte, 1);
271#endif 265#endif
272 return false; 266 return false;
273} 267}
@@ -450,15 +444,13 @@ void lcd_icon(int icon, bool enable)
450 444
451 pos = icon_pos[icon]; 445 pos = icon_pos[icon];
452 mask = icon_mask[icon]; 446 mask = icon_mask[icon];
453 447
454 lcd_write_command(LCD_ICON(pos));
455
456 if(enable) 448 if(enable)
457 icon_mirror[pos] |= mask; 449 icon_mirror[pos] |= mask;
458 else 450 else
459 icon_mirror[pos] &= ~mask; 451 icon_mirror[pos] &= ~mask;
460 452
461 lcd_write_data(&icon_mirror[pos], 1); 453 lcd_write_command_e(LCD_ICON(pos), icon_mirror[pos]);
462} 454}
463 455
464int lcd_default_contrast(void) 456int lcd_default_contrast(void)
@@ -468,9 +460,7 @@ int lcd_default_contrast(void)
468 460
469void lcd_set_contrast(int val) 461void lcd_set_contrast(int val)
470{ 462{
471 lcd_data_byte = (unsigned char) (31 - val); 463 lcd_write_command_e(lcd_contrast_set, 31 - val);
472 lcd_write_command(lcd_contrast_set);
473 lcd_write_data(&lcd_data_byte, 1);
474} 464}
475#endif /* SIMULATOR */ 465#endif /* SIMULATOR */
476 466
@@ -500,9 +490,7 @@ void lcd_init (void)
500 or_b(0x0f, &PBDRL); /* ... and high */ 490 or_b(0x0f, &PBDRL); /* ... and high */
501 491
502 lcd_write_command(NEW_LCD_FUNCTION_SET + 1); /* CGRAM selected */ 492 lcd_write_command(NEW_LCD_FUNCTION_SET + 1); /* CGRAM selected */
503 lcd_write_command(NEW_LCD_CONTRAST_SET); 493 lcd_write_command_e(NEW_LCD_CONTRAST_SET, 0x08);
504 lcd_data_byte = 0x08;
505 lcd_write_data(&lcd_data_byte, 1);
506 lcd_write_command(NEW_LCD_POWER_SAVE_MODE_OSC_CONTROL_SET + 2); 494 lcd_write_command(NEW_LCD_POWER_SAVE_MODE_OSC_CONTROL_SET + 2);
507 /* oscillator on */ 495 /* oscillator on */
508 lcd_write_command(NEW_LCD_POWER_CONTROL_REGISTER_SET + 7); 496 lcd_write_command(NEW_LCD_POWER_CONTROL_REGISTER_SET + 7);
@@ -599,9 +587,7 @@ void lcd_init (void)
599 for (i=0; i<300000; i++) asm volatile ("nop"); /* wait 150 ms */ 587 for (i=0; i<300000; i++) asm volatile ("nop"); /* wait 150 ms */
600 588
601 lcd_write_command(0x31); 589 lcd_write_command(0x31);
602 lcd_write_command(0xa8); /* Set contrast control */ 590 lcd_write_command_e(0xa8, 0); /* Set contrast control */
603 lcd_data_byte = 0;
604 lcd_write_data(&lcd_data_byte, 1); /* 0 */
605 } 591 }
606#endif 592#endif
607#endif /* !SIMULATOR */ 593#endif /* !SIMULATOR */