diff options
-rw-r--r-- | firmware/export/config/vibe500.h | 3 | ||||
-rw-r--r-- | firmware/target/arm/pbell/vibe500/power-vibe500.c | 27 |
2 files changed, 14 insertions, 16 deletions
diff --git a/firmware/export/config/vibe500.h b/firmware/export/config/vibe500.h index 7ae1f4fc2a..f8ce86b24f 100644 --- a/firmware/export/config/vibe500.h +++ b/firmware/export/config/vibe500.h @@ -136,8 +136,7 @@ #define CONFIG_I2C I2C_PP5020 /* define this if the hardware can be powered off while charging */ -/* It is possible to do it (OF seems to do that) but the method is unknown yet */ -/* #define HAVE_POWEROFF_WHILE_CHARGING */ +#define HAVE_POWEROFF_WHILE_CHARGING /* The start address index for ROM builds */ #define ROM_START 0x00000000 diff --git a/firmware/target/arm/pbell/vibe500/power-vibe500.c b/firmware/target/arm/pbell/vibe500/power-vibe500.c index 45ab7fb1fd..b345a9b5d0 100644 --- a/firmware/target/arm/pbell/vibe500/power-vibe500.c +++ b/firmware/target/arm/pbell/vibe500/power-vibe500.c @@ -55,7 +55,7 @@ void power_init(void) ClipZifnoFinger=0,DisableDeceleration=0,Dribble=0. MEP parameter 0x21 - Enhanced Operating Configuration */ touchpad_set_parameter(0x21,0x0008); - /* Set the GPO_LEVEL = 0 - for the button lights */ + /* Set the GPO_LEVELS = 0 - for the button lights */ touchpad_set_parameter(0x23,0x0000); /* Sound unmute (on) */ @@ -94,22 +94,21 @@ bool ide_powered(void) void power_off(void) { - /* from the OF */ -/* - DEV_INIT2 |= DEV_I2S; - GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 0x10); - sleep(HZ/100); - GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 0x10); - sleep(HZ); - GPIO_CLEAR_BITWISE(GPIOB_OUTPUT_VAL, 0x80); - sleep(HZ); - GPIO_CLEAR_BITWISE(GPIOC_OUTPUT_VAL, 0x08); - GPO32_VAL |= 0x40000000; - GPO32_ENABLE |= 0x40000000; -*/ /* Sound mute (off) */ DEV_INIT2 |= DEV_I2S; GPIO_SET_BITWISE(GPIOL_OUTPUT_VAL, 0x10); /* shutdown bit */ GPIO_CLEAR_BITWISE(GPIOB_OUTPUT_VAL, 0x80); + /* button lights off */ + touchpad_set_parameter(0x22,0x0000); + /* ATA power off */ + ide_power_enable(false); + /* ? - in the OF */ + GPO32_VAL |= 0x40000000; + GPO32_ENABLE |= 0x40000000; + /* lcd controller off ? - makes lcd white until power on */ + GPIO_CLEAR_BITWISE(GPIOJ_OUTPUT_VAL, 0x04); + /* a way to poweroff while charging = system_reset */ + if (power_input_status()) + system_reboot(); } |