diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index 9ddbbdbbb2..09a4e76935 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 819c1983d9..4b08648112 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);