summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/power.c15
-rw-r--r--firmware/drivers/power.h3
2 files changed, 17 insertions, 1 deletions
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c
index 9ddbbdb..09a4e76 100644
--- a/firmware/drivers/power.c
+++ b/firmware/drivers/power.c
@@ -72,6 +72,17 @@ void ide_power_enable(bool on)
#endif
}
+void power_off(void)
+{
+#ifdef ARCHOS_RECORDER
+ PBDR &= ~PBDR_BTN_OFF;
+ PBIOR |= PBDR_BTN_OFF;
+#else
+ PADR &= ~0x800;
+ PAIOR |= 0x800;
+#endif
+}
+
#else
bool charger_inserted(void)
@@ -90,4 +101,8 @@ void charger_enable(bool on)
on = on;
}
+void power_off(void)
+{
+}
+
#endif /* SIMULATOR */
diff --git a/firmware/drivers/power.h b/firmware/drivers/power.h
index 819c198..4b08648 100644
--- a/firmware/drivers/power.h
+++ b/firmware/drivers/power.h
@@ -21,13 +21,14 @@
#define BATTERY_LEVEL_SHUTDOWN (4500000 / BATTERY_SCALE_FACTOR) /* 4.5V */
#define BATTERY_LEVEL_DANGEROUS (4750000 / BATTERY_SCALE_FACTOR) /* 4.75V */
-#define BATTERY_LEVEL_FULL (5550000 / BATTERY_SCALE_FACTOR) /* 5.55V */
+#define BATTERY_LEVEL_FULL (5300000 / BATTERY_SCALE_FACTOR) /* 5.3V */
#define BATTERY_RANGE (BATTERY_LEVEL_FULL - BATTERY_LEVEL_SHUTDOWN)
bool charger_inserted(void);
void charger_enable(bool on);
void ide_power_enable(bool on);
+void power_off(void);
/* Returns battery level in percent */
int battery_level(void);