summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Dziok <b0hoon@o2.pl>2010-03-01 22:24:17 +0000
committerSzymon Dziok <b0hoon@o2.pl>2010-03-01 22:24:17 +0000
commitf67e3559c62ba21d6085793a2bb5513050590ef7 (patch)
treea34118c5aa3f36e4e3161e0c4ea7102f862d33ce
parentafeacb048f4ca0aed300531fcb90da969724f803 (diff)
downloadrockbox-f67e3559c62ba21d6085793a2bb5513050590ef7.zip
rockbox-f67e3559c62ba21d6085793a2bb5513050590ef7.tar.gz
rockbox-f67e3559c62ba21d6085793a2bb5513050590ef7.tar.bz2
rockbox-f67e3559c62ba21d6085793a2bb5513050590ef7.tar.xz
Packard Bell Vibe 500: clean up the power off, enable poweroff while charging.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24987 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/config/vibe500.h3
-rw-r--r--firmware/target/arm/pbell/vibe500/power-vibe500.c27
2 files changed, 14 insertions, 16 deletions
diff --git a/firmware/export/config/vibe500.h b/firmware/export/config/vibe500.h
index 7ae1f4f..f8ce86b 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 45ab7fb..b345a9b 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();
}