summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd-h100-remote.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c
index aaf8a1e..221338b 100644
--- a/firmware/drivers/lcd-h100-remote.c
+++ b/firmware/drivers/lcd-h100-remote.c
@@ -61,7 +61,11 @@
#define RS_HI or_l(0x00010000, &GPIO_OUT)
/* delay loop */
-#define DELAY do { int _x; for(_x=0;_x<3;_x++);} while (0)
+#define DELAY_DEFAULT do { int _x = 0; for (_x = 0;_x < 2;_x++); } while (0)
+#define DELAY_EMIREDUCE do { int _x = cpu_frequency >> 21; while (_x--); } \
+ while (0)
+#define DELAY do { if (emireduce) DELAY_EMIREDUCE; \
+ else DELAY_DEFAULT; } while (0)
#define SCROLLABLE_LINES 13
@@ -77,6 +81,9 @@ static int curfont = FONT_SYSFIXED;
#ifndef SIMULATOR
static int xoffset; /* needed for flip */
+/* If set to true, will prevent "ticking" to headphones. */
+static bool emireduce = false;
+
/* remote hotplug */
static int countdown; /* for remote plugging debounce */
static bool last_remote_status = false;
@@ -177,7 +184,7 @@ void lcd_remote_write_data(const unsigned char* p_bytes, int count)
CLK_HI;
data <<= 1;
DELAY;
-
+
CLK_LO;
}
}
@@ -343,6 +350,11 @@ int lcd_remote_default_contrast(void)
#ifndef SIMULATOR
+void lcd_remote_emireduce(bool state)
+{
+ emireduce = state;
+}
+
void lcd_remote_powersave(bool on)
{
if (remote_initialized)
@@ -476,7 +488,7 @@ static void remote_tick(void)
}
}
}
-}
+}
#endif /* !SIMULATOR */
/* LCD init */