summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/lcd-clip.h
diff options
context:
space:
mode:
authorWilliam Wilgus <me.theuser@yahoo.com>2017-12-14 06:22:04 +0100
committerWilliam Wilgus <me.theuser@yahoo.com>2018-07-26 04:23:28 +0200
commitdcd71e66bd5f0b521c9f98ebe83ff1f7abb62918 (patch)
tree418633d02677aa6f81e6fafa524a181554c823d4 /firmware/target/arm/as3525/lcd-clip.h
parent056d4b0ec044aedd14bd657f4b6a6f8e96c127e3 (diff)
downloadrockbox-dcd71e66bd5f0b521c9f98ebe83ff1f7abb62918.tar.gz
rockbox-dcd71e66bd5f0b521c9f98ebe83ff1f7abb62918.zip
Optimize lcd-ssd1303 driver (clip series)
Saves 100+ bytes (50 of it in iram), saves a bit of power Internal LCD clock decreased but with added efficiency of drawing routines loses only around 2 Hz on the scanrate (~75Hz) while fps is slightly increased Column offsets are now calculated outside the loops saving a few instructions Passing a LCD_NOP command after lcd_update turns off Data/Cmd# gpio saving a bit more power Added a function lcd_write_cmd_triple() that allows 3 commands to be sent at once when enabled with LCD_USE_FIFO_FOR_COMMANDS it sends them back to back without checking FIFO status in between or sending to thhe D/C# Gpio. Makes an assumption about the FIFO being large enough to accept 3 commands after being emptied which should be the case on the clipv1, clipv2, clipplus. I have only enabled it for the clip plus as thats the only device I have to test it on. On clip+ the SSP clock is now turned off when screen is off Change-Id: Ib5fd24697bfe4ac8b8ee017361e789e4a7910d21
Diffstat (limited to 'firmware/target/arm/as3525/lcd-clip.h')
-rw-r--r--firmware/target/arm/as3525/lcd-clip.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/lcd-clip.h b/firmware/target/arm/as3525/lcd-clip.h
index eb76401bc0..3bde92430c 100644
--- a/firmware/target/arm/as3525/lcd-clip.h
+++ b/firmware/target/arm/as3525/lcd-clip.h
@@ -18,12 +18,22 @@
18 * KIND, either express or implied. 18 * KIND, either express or implied.
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21#ifndef __LCDCLIP_H__
22#define __LCDCLIP_H__
21 23
22#include "config.h" 24#include "config.h"
23 25
26#if !defined(BOOTLOADER) && defined(SANSA_CLIPPLUS) /* only tested for clipplus */
27/* Ensure empty FIFO for lcd commands is at least 3 deep */
28#define LCD_USE_FIFO_FOR_COMMANDS
29#endif
30
31void lcd_write_cmd_triplet(int cmd1, int cmd2, int cmd3);
32
24/* return variant number: 0 = clipv1, clipv2, old clip+, 1 = newer clip+ */ 33/* return variant number: 0 = clipv1, clipv2, old clip+, 1 = newer clip+ */
25int lcd_hw_init(void) INIT_ATTR; 34int lcd_hw_init(void) INIT_ATTR;
26 35
27/* target-specific power enable */ 36/* target-specific power enable */
28void lcd_enable_power(bool onoff); 37void lcd_enable_power(bool onoff);
29 38
39#endif /*__LCDCLIP_H__*/