rockbox/firmware/target/arm/iriver/h10/power-h10.c
Barry Wardell e63e62b2a1 Detect charger connected on H10. No need to sleep(HZ) when powering off.
More sensible USB support for H10: plugging in puts it into USB charging mode and leaves Rockbox usable, holding 'O' while pluggin in the USB cable will reboot the H10 (continuing to hold 'O' starts it up in UMS mode), holding any other button brings up the USB screen as previously.
Implement system_reboot() for all PP5020 devices.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11015 a1c6a512-1295-4272-9138-f99709370657
2006-09-20 23:21:59 +00:00

93 lines
2.1 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2006 by Barry Wardell
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
/* Created from power.c using some iPod code, and some custom stuff based on
GPIO analysis
*/
#include "config.h"
#include "cpu.h"
#include <stdbool.h>
#include "adc.h"
#include "kernel.h"
#include "system.h"
#include "power.h"
#include "hwcompat.h"
#include "logf.h"
#include "usb.h"
#if CONFIG_CHARGING == CHARGING_CONTROL
bool charger_enabled;
#endif
#if 0
#ifdef CONFIG_TUNER
static bool powered = false;
bool radio_powered()
{
return powered;
}
bool radio_power(bool status)
{
bool old_status = powered;
powered = status;
#ifdef HAVE_TUNER_PWR_CTRL
if (status)
{
and_b(~0x04, &PADRL); /* drive PA2 low for tuner enable */
sleep(1); /* let the voltage settle */
}
else
or_b(0x04, &PADRL); /* drive PA2 high for tuner disable */
#endif
return old_status;
}
#endif /* #ifdef CONFIG_TUNER */
#endif
void power_init(void)
{
}
bool charger_inserted(void)
{
return (GPIOF_INPUT_VAL & 0x08)?true:false;
}
void ide_power_enable(bool on)
{
(void)on;
/* We do nothing on the iPod */
}
bool ide_powered(void)
{
/* pretend we are always powered - we don't turn it off on the ipod */
return true;
}
void power_off(void)
{
GPIOF_OUTPUT_VAL &=~ 0x20;
}