summaryrefslogtreecommitdiff
path: root/firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c')
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c
index 688b44eaa6..eb2ffb5238 100644
--- a/firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/power-meg-fx.c
@@ -23,6 +23,8 @@
23#include "system.h" 23#include "system.h"
24#include "power.h" 24#include "power.h"
25#include "pcf50606.h" 25#include "pcf50606.h"
26#include "backlight.h"
27#include "backlight-target.h"
26 28
27#ifndef SIMULATOR 29#ifndef SIMULATOR
28 30
@@ -33,21 +35,34 @@ void power_init(void)
33 35
34bool charger_inserted(void) 36bool charger_inserted(void)
35{ 37{
36 return !(GPFDAT & (1 << 4)); 38 return (GPFDAT & (1 << 4)) ? false : true;
39}
40
41/* Returns true if the unit is charging the batteries. */
42bool charging_state(void) {
43 return (GPGDAT & (1 << 8)) ? false : true;
37} 44}
38 45
39void ide_power_enable(bool on) 46void ide_power_enable(bool on)
40{ 47{
41 (void)on; 48 if (on)
49 GPGDAT |= (1 << 11);
50 else
51 GPGDAT &= ~(1 << 11);
42} 52}
43 53
44bool ide_powered(void) 54bool ide_powered(void)
45{ 55{
46 return true; 56 return (GPGDAT & (1 << 11)) != 0;
47} 57}
48 58
49void power_off(void) 59void power_off(void)
50{ 60{
61 /* turn off backlight and wait for 1 second */
62 __backlight_off();
63 sleep(HZ/2);
64 /* set SLEEP bit to on in CLKCON to turn off */
65 CLKCON |=(1<<3);
51} 66}
52 67
53#else /* SIMULATOR */ 68#else /* SIMULATOR */