summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c')
-rw-r--r--firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
index 481e548440..3cbff75ffd 100644
--- a/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
+++ b/firmware/target/arm/s5l8700/ipodnano2g/lcd-nano2g.c
@@ -60,21 +60,28 @@ static int xoffset; /* needed for flip */
60 60
61static inline void s5l_lcd_write_cmd_data(int cmd, int data) 61static inline void s5l_lcd_write_cmd_data(int cmd, int data)
62{ 62{
63 while (LCD_STATUS & 0x10);
63 LCD_WCMD = cmd >> 8; 64 LCD_WCMD = cmd >> 8;
65 while (LCD_STATUS & 0x10);
64 LCD_WCMD = cmd & 0xff; 66 LCD_WCMD = cmd & 0xff;
65 67
68 while (LCD_STATUS & 0x10);
66 LCD_WDATA = data >> 8; 69 LCD_WDATA = data >> 8;
70 while (LCD_STATUS & 0x10);
67 LCD_WDATA = data & 0xff; 71 LCD_WDATA = data & 0xff;
68} 72}
69 73
70static inline void s5l_lcd_write_cmd(unsigned short cmd) 74static inline void s5l_lcd_write_cmd(unsigned short cmd)
71{ 75{
76 while (LCD_STATUS & 0x10);
72 LCD_WCMD = cmd; 77 LCD_WCMD = cmd;
73} 78}
74 79
75static inline void s5l_lcd_write_data(int data) 80static inline void s5l_lcd_write_data(int data)
76{ 81{
82 while (LCD_STATUS & 0x10);
77 LCD_WDATA = data >> 8; 83 LCD_WDATA = data >> 8;
84 while (LCD_STATUS & 0x10);
78 LCD_WDATA = data & 0xff; 85 LCD_WDATA = data & 0xff;
79} 86}
80 87
@@ -185,7 +192,9 @@ void lcd_update(void)
185 for (x = 0; x < LCD_WIDTH; x++) { 192 for (x = 0; x < LCD_WIDTH; x++) {
186 pixel = *(p++); 193 pixel = *(p++);
187 194
195 while (LCD_STATUS & 0x10);
188 LCD_WDATA = (pixel & 0xff00) >> 8; 196 LCD_WDATA = (pixel & 0xff00) >> 8;
197 while (LCD_STATUS & 0x10);
189 LCD_WDATA = pixel & 0xff; 198 LCD_WDATA = pixel & 0xff;
190 } 199 }
191 } 200 }