mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
Shutdown needs about 2 seconds, but it seems to work :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16317 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
b650bc592a
commit
868fcce96c
2 changed files with 18 additions and 8 deletions
|
@ -197,12 +197,8 @@ void* main(void)
|
|||
line = 0;
|
||||
printf("POWER-OFF");
|
||||
|
||||
#if defined(COWON_D2)
|
||||
lcd_enable(false);
|
||||
#endif
|
||||
|
||||
/* TODO: Power-off */
|
||||
while(1);
|
||||
/* Power-off */
|
||||
power_off();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -16,9 +16,7 @@
|
|||
* KIND, either express or implied.
|
||||
*
|
||||
****************************************************************************/
|
||||
#include "config.h"
|
||||
#include "cpu.h"
|
||||
#include <stdbool.h>
|
||||
#include "kernel.h"
|
||||
#include "system.h"
|
||||
#include "power.h"
|
||||
|
@ -61,6 +59,22 @@ void charger_enable(bool on)
|
|||
|
||||
void power_off(void)
|
||||
{
|
||||
/* Disable interrupts on this core */
|
||||
set_interrupt_status(IRQ_FIQ_DISABLED, IRQ_FIQ_STATUS);
|
||||
|
||||
/* Mask them on both cores */
|
||||
CPU_INT_CLR = -1;
|
||||
COP_INT_CLR = -1;
|
||||
|
||||
/* Shutdown: stop XIN oscillator */
|
||||
CLKCTRL &= ~(1 << 31);
|
||||
|
||||
/* Halt everything and wait for device to power off */
|
||||
while (1)
|
||||
{
|
||||
CPU_CTL = PROC_SLEEP;
|
||||
COP_CTL = PROC_SLEEP;
|
||||
}
|
||||
}
|
||||
|
||||
void ide_power_enable(bool on)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue