summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/power.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c
index aa76c2e..17a3fec 100644
--- a/firmware/drivers/power.c
+++ b/firmware/drivers/power.c
@@ -25,6 +25,7 @@
#include "power.h"
#include "logf.h"
#include "usb.h"
+#include "backlight-target.h"
#if CONFIG_CHARGING == CHARGING_CONTROL
bool charger_enabled;
@@ -66,6 +67,13 @@ void power_init(void)
PBCR2 &= ~0x0c00; /* GPIO for PB5 */
or_b(0x20, &PBIORL);
or_b(0x20, &PBDRL); /* hold power */
+#if defined(HAVE_MMC) && !defined(HAVE_BACKLIGHT)
+ /* Disable backlight on backlight-modded Ondios when running
+ * a standard build (always on otherwise). */
+ PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */
+ and_b(~0x40, &PADRH); /* drive it low */
+ or_b(0x40, &PAIORH); /* ..and output */
+#endif
#endif
#if CONFIG_CHARGING == CHARGING_CONTROL
PBCR2 &= ~0x0c00; /* GPIO for PB5 */
@@ -200,6 +208,10 @@ void power_off(void)
and_b(~0x10, &PBDRL);
or_b(0x10, &PBIORL);
#elif defined(HAVE_POWEROFF_ON_PB5)
+#if defined(HAVE_MMC) && defined(HAVE_BACKLIGHT)
+ /* Switch off the light on backlight-modded Ondios */
+ __backlight_off();
+#endif
and_b(~0x20, &PBDRL);
or_b(0x20, &PBIORL);
#else /* player */