summaryrefslogtreecommitdiffstats
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/as3525/system-as3525.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index 7af38ff9d1..a5f34d9b80 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -27,6 +27,7 @@
#include "dma-target.h"
#include "clock-target.h"
#include "fmradio_i2c.h"
+#include "button-target.h"
#define default_interrupt(name) \
extern __attribute__((weak,alias("UIRQ"))) void name (void)
@@ -217,8 +218,14 @@ static void sdram_init(void)
void system_init(void)
{
+ unsigned int reset_loops = 640;
+
+ CCU_SRC = 0x1fffff0
+ & ~(1<<18); /* FIXME */
+ while(reset_loops--)
+ CCU_SRL = CCU_SRL_MAGIC_NUMBER;
+ CCU_SRC = CCU_SRL = 0;
-#ifdef BOOTLOADER /* TODO: makes this work in the main build */
CGU_PROC = 0; /* fclk 24 MHz */
CGU_PERI &= ~0x7f; /* pclk 24 MHz */
@@ -248,6 +255,7 @@ void system_init(void)
"mcr p15, 0, r0, c1, c0 \n"
: : : "r0" );
+#ifdef BOOTLOADER
sdram_init();
#endif /* BOOTLOADER */
@@ -262,10 +270,11 @@ void system_init(void)
dma_init();
+ ascodec_init();
+
#ifndef BOOTLOADER
/* Disable fast hardware power-off, to use power button normally
* We don't need the power button in the bootloader. */
- ascodec_init();
ascodec_write(AS3514_CVDD_DCDC3, ascodec_read(AS3514_CVDD_DCDC3) & (1<<2));
#ifdef CONFIG_TUNER
@@ -289,7 +298,7 @@ void system_reboot(void)
void system_exception_wait(void)
{
- while (1);
+ while(!button_read_device());
}
int system_memory_guard(int newmode)