summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c')
-rw-r--r--firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
index c0b128a486..a50a9e5c80 100644
--- a/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
+++ b/firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c
@@ -64,6 +64,31 @@ void lcd_write_command(int byte)
64 ; 64 ;
65} 65}
66 66
67void lcd_write_cmd_triplet(int cmd1, int cmd2, int cmd3)
68{
69#ifndef LCD_USE_FIFO_FOR_COMMANDS
70 lcd_write_command(cmd1);
71 lcd_write_command(cmd2);
72 lcd_write_command(cmd3);
73#else
74 /* combine writes to data register */
75 while(SSP_SR & (1<<4)) /* BSY flag */
76 ;
77 /* FIFO is empty at this point */
78
79 /* LCD command mode */
80 GPIOB_PIN(2) = 0;
81
82 /* !!makes assumption FIFO is at least (3) levels deep!! */
83 SSP_DATA = cmd1;
84 SSP_DATA = cmd2;
85 SSP_DATA = cmd3;
86
87 while(SSP_SR & (1<<4)) /* BSY flag */
88 ;
89#endif
90}
91
67void lcd_write_data(const fb_data* p_bytes, int count) 92void lcd_write_data(const fb_data* p_bytes, int count)
68{ 93{
69 /* LCD data mode */ 94 /* LCD data mode */
@@ -80,6 +105,13 @@ void lcd_write_data(const fb_data* p_bytes, int count)
80 105
81void lcd_enable_power(bool onoff) 106void lcd_enable_power(bool onoff)
82{ 107{
108#ifndef BOOTLOADER
109 if (onoff)
110 bitset32(&CGU_PERI, CGU_SSP_CLOCK_ENABLE);
111 else
112 bitclr32(&CGU_PERI, CGU_SSP_CLOCK_ENABLE);
113#else
83 (void) onoff; 114 (void) onoff;
115#endif
84} 116}
85 117