diff options
Diffstat (limited to 'firmware/target/arm/as3525/sansa-clipplus')
-rw-r--r-- | firmware/target/arm/as3525/sansa-clipplus/lcd-clip-plus.c | 32 |
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 | ||
67 | void 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 | |||
67 | void lcd_write_data(const fb_data* p_bytes, int count) | 92 | void 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 | ||
81 | void lcd_enable_power(bool onoff) | 106 | void 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 | ||