summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/settings.c8
-rw-r--r--apps/settings_menu.c14
-rw-r--r--apps/wps-display.c2
-rw-r--r--firmware/backlight.c38
-rw-r--r--firmware/export/config-fmrecorder.h2
-rw-r--r--firmware/export/config-h100.h2
-rw-r--r--firmware/export/config-player.h2
-rw-r--r--firmware/export/config-recorder.h2
-rw-r--r--firmware/export/config-recorderv2.h2
-rw-r--r--firmware/export/config.h6
10 files changed, 44 insertions, 34 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 7ca3820016..ff9c57d136 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -182,12 +182,14 @@ static const struct bit_entry rtc_bits[] =
{2, S_O(repeat_mode), REPEAT_ALL, "repeat", "off,all,one" },
/* LCD */
{6, S_O(contrast), 40, "contrast", NULL },
-#ifdef HAVE_BACKLIGHT
+#ifdef CONFIG_BACKLIGHT
+#ifdef HAVE_CHARGING
{1, S_O(backlight_on_when_charging), false,
"backlight when plugged", off_on },
+#endif
{5, S_O(backlight_timeout), 5, "backlight timeout",
"off,on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90" },
-#endif
+#endif /* CONFIG_BACKLIGHT */
#ifdef HAVE_LCD_BITMAP
{1, S_O(invert), false, "invert", off_on },
{1, S_O(flip_display), false, "flip display", off_on },
@@ -247,7 +249,7 @@ static const struct bit_entry hd_bits[] =
/* # of bits, offset+size, default, .cfg name, .cfg values */
/* more display */
-#ifdef HAVE_BACKLIGHT
+#ifdef CONFIG_BACKLIGHT
{1, S_O(caption_backlight), false, "caption backlight", off_on },
#endif
{4, S_O(scroll_speed), 9, "scroll speed", NULL }, /* 0...15 */
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index c61352b1cc..eae39f905f 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -77,7 +77,7 @@ static bool contrast(void)
MAX_CONTRAST_SETTING );
}
-#ifdef HAVE_BACKLIGHT
+#ifdef CONFIG_BACKLIGHT
static bool caption_backlight(void)
{
bool rc = set_bool( str(LANG_CAPTION_BACKLIGHT),
@@ -575,7 +575,8 @@ static bool useMRB(void)
names, 3, NULL );
}
-#ifdef HAVE_BACKLIGHT
+#ifdef CONFIG_BACKLIGHT
+#ifdef HAVE_CHARGING
static bool backlight_on_when_charging(void)
{
bool result = set_bool(str(LANG_BACKLIGHT_ON_WHEN_CHARGING),
@@ -583,6 +584,7 @@ static bool backlight_on_when_charging(void)
backlight_set_on_when_charging(global_settings.backlight_on_when_charging);
return result;
}
+#endif
static bool backlight_timer(void)
{
@@ -610,7 +612,7 @@ static bool backlight_timer(void)
return set_option(str(LANG_BACKLIGHT), &global_settings.backlight_timeout,
INT, names, 19, backlight_set_timeout );
}
-#endif /* HAVE_BACKLIGHT */
+#endif /* CONFIG_BACKLIGHT */
static bool poweroff_idle_timer(void)
{
@@ -1162,11 +1164,13 @@ static bool lcd_settings_menu(void)
bool result;
static const struct menu_item items[] = {
-#ifdef HAVE_BACKLIGHT
+#ifdef CONFIG_BACKLIGHT
{ ID2P(LANG_BACKLIGHT), backlight_timer },
+#ifdef HAVE_CHARGING
{ ID2P(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_on_when_charging },
- { ID2P(LANG_CAPTION_BACKLIGHT), caption_backlight },
#endif
+ { ID2P(LANG_CAPTION_BACKLIGHT), caption_backlight },
+#endif /* CONFIG_BACKLIGHT */
{ ID2P(LANG_CONTRAST), contrast },
#ifdef HAVE_LCD_BITMAP
{ ID2P(LANG_INVERT), invert },
diff --git a/apps/wps-display.c b/apps/wps-display.c
index 90fec56001..a261f21a5d 100644
--- a/apps/wps-display.c
+++ b/apps/wps-display.c
@@ -987,7 +987,7 @@ bool wps_refresh(struct mp3entry* id3,
peak_meter_enabled = enable_pm;
#endif
-#if defined(HAVE_BACKLIGHT) && !defined(SIMULATOR)
+#if defined(CONFIG_BACKLIGHT) && !defined(SIMULATOR)
if (global_settings.caption_backlight && id3) {
/* turn on backlight n seconds before track ends, and turn it off n
seconds into the new track. n == backlight_timeout, or 5s */
diff --git a/firmware/backlight.c b/firmware/backlight.c
index fea22a06a4..de3ebe3e05 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -28,7 +28,7 @@
#include "power.h"
#include "system.h"
-#ifdef HAVE_BACKLIGHT
+#ifdef CONFIG_BACKLIGHT
const char backlight_timeout_value[19] =
{
@@ -51,30 +51,30 @@ static unsigned int backlight_timeout = 5;
static void __backlight_off(void)
{
-#ifdef IRIVER_H100
+#if CONFIG_BACKLIGHT == BL_IRIVER
GPIO1_OUT |= 0x00020000;
-#else
-#ifdef HAVE_RTC
+#elif CONFIG_BACKLIGHT == BL_RTC
/* Disable square wave */
rtc_write(0x0a, rtc_read(0x0a) & ~0x40);
-#else
- and_b(~0x40, &PAIORH);
-#endif
+#elif CONFIG_BACKLIGHT == BL_PA14_LO /* Player */
+ and_b(~0x40, &PAIORH); /* let it float (up) */
+#elif CONFIG_BACKLIGHT == BL_PA14_HI /* Ondio */
+ and_b(~0x40, &PADRH); /* drive it low */
#endif
}
static void __backlight_on(void)
{
-#ifdef IRIVER_H100
+#if CONFIG_BACKLIGHT == BL_IRIVER
GPIO1_OUT &= ~0x00020000;
-#else
-#ifdef HAVE_RTC
+#elif CONFIG_BACKLIGHT == BL_RTC
/* Enable square wave */
rtc_write(0x0a, rtc_read(0x0a) | 0x40);
-#else
- and_b(~0x40, &PADRH);
+#elif CONFIG_BACKLIGHT == BL_PA14_LO /* Player */
+ and_b(~0x40, &PADRH); /* drive an set low */
or_b(0x40, &PAIORH);
-#endif
+#elif CONFIG_BACKLIGHT == BL_PA14_HI /* Ondio */
+ or_b(0x40, &PADRH); /* drive it high */
#endif
}
@@ -187,15 +187,13 @@ void backlight_init(void)
create_thread(backlight_thread, backlight_stack,
sizeof(backlight_stack), backlight_thread_name);
-#ifdef HAVE_LCD_CHARCELLS
+#if CONFIG_BACKLIGHT == BL_IRIVER
+ GPIO1_ENABLE |= 0x00020000;
+ GPIO1_FUNCTION |= 0x00020000;
+#elif CONFIG_BACKLIGHT == BL_PA14_LO || CONFIG_BACKLIGHT == BL_PA14_HI
PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */
or_b(0x40, &PAIORH); /* ..and output */
#endif
-
-#ifdef IRIVER_H100
- GPIO1_ENABLE |= 0x00020000;
- GPIO1_FUNCTION |= 0x00020000;
-#endif
backlight_on();
}
@@ -210,5 +208,5 @@ void backlight_set_timeout(int index) {(void)index;}
bool backlight_get_on_when_charging(void) {return 0;}
void backlight_set_on_when_charging(bool yesno) {(void)yesno;}
-#endif /* #ifdef HAVE_BACKLIGHT */
+#endif /* #ifdef CONFIG_BACKLIGHT */
diff --git a/firmware/export/config-fmrecorder.h b/firmware/export/config-fmrecorder.h
index 0903e66c6d..c20c36ea43 100644
--- a/firmware/export/config-fmrecorder.h
+++ b/firmware/export/config-fmrecorder.h
@@ -71,7 +71,7 @@
#define HAVE_LED
/* Define this for LCD backlight available */
-#define HAVE_BACKLIGHT
+#define CONFIG_BACKLIGHT BL_RTC /* on I2C controlled RTC port */
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
diff --git a/firmware/export/config-h100.h b/firmware/export/config-h100.h
index 9e56aa2c59..405e839dd5 100644
--- a/firmware/export/config-h100.h
+++ b/firmware/export/config-h100.h
@@ -25,7 +25,7 @@
#define ROM_START 0x11010
/* Define this for LCD backlight available */
-#define HAVE_BACKLIGHT
+#define CONFIG_BACKLIGHT BL_IRIVER /* port controlled */
/* Define this to the CPU frequency */
#define CPU_FREQ 11289600
diff --git a/firmware/export/config-player.h b/firmware/export/config-player.h
index 5a8f080669..6ef61234ad 100644
--- a/firmware/export/config-player.h
+++ b/firmware/export/config-player.h
@@ -64,6 +64,6 @@
#define HAVE_LED
/* Define this for LCD backlight available */
-#define HAVE_BACKLIGHT
+#define CONFIG_BACKLIGHT BL_PA14_LO /* port PA14, low active */
#endif /* SIMULATOR */
diff --git a/firmware/export/config-recorder.h b/firmware/export/config-recorder.h
index eefe5e371b..79fd116d4f 100644
--- a/firmware/export/config-recorder.h
+++ b/firmware/export/config-recorder.h
@@ -65,7 +65,7 @@
#define HAVE_LED
/* Define this for LCD backlight available */
-#define HAVE_BACKLIGHT
+#define CONFIG_BACKLIGHT BL_RTC /* on I2C controlled RTC port */
/* Define this for S/PDIF output available */
#define HAVE_SPDIF_OUT
diff --git a/firmware/export/config-recorderv2.h b/firmware/export/config-recorderv2.h
index 575a88fd7c..028a27095c 100644
--- a/firmware/export/config-recorderv2.h
+++ b/firmware/export/config-recorderv2.h
@@ -71,7 +71,7 @@
#define HAVE_LED
/* Define this for LCD backlight available */
-#define HAVE_BACKLIGHT
+#define CONFIG_BACKLIGHT BL_RTC /* on I2C controlled RTC port */
/* Define this if you have a software controlled poweroff */
#define HAVE_SW_POWEROFF
diff --git a/firmware/export/config.h b/firmware/export/config.h
index cda5c8cee7..7c0e285bbe 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -46,6 +46,12 @@
#define BATT_4AA_NIMH 1500
#define BATT_3AAA_ALKALINE 1000
+/* CONFIG_BACKLIGHT */
+#define BL_PA14_LO 0 /* Player, PA14 low active */
+#define BL_RTC 1 /* Recorder, RTC square wave output */
+#define BL_PA14_HI 2 /* Ondio, PA14 high active */
+#define BL_IRIVER 3 /* IRiver GPIO */
+
/* now go and pick yours */
#if defined(ARCHOS_PLAYER)
#include "config-player.h"