summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx31/gigabeat-s/system-imx31.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/system-imx31.c')
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/system-imx31.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/system-imx31.c b/firmware/target/arm/imx31/gigabeat-s/system-imx31.c
index cb265af0a3..b3f0fd66c9 100644
--- a/firmware/target/arm/imx31/gigabeat-s/system-imx31.c
+++ b/firmware/target/arm/imx31/gigabeat-s/system-imx31.c
@@ -32,6 +32,28 @@
32#include "clkctl-imx31.h" 32#include "clkctl-imx31.h"
33#include "mc13783.h" 33#include "mc13783.h"
34 34
35static unsigned long product_rev;
36static unsigned long system_rev;
37
38/** IC revision info routines **/
39unsigned int iim_system_rev(void)
40{
41 return system_rev & IIM_SREV_SREV;
42}
43
44unsigned int iim_prod_rev(void)
45{
46 return product_rev;
47}
48
49static void iim_init(void)
50{
51 /* Initialize the IC revision info (required by SDMA) */
52 imx31_clkctl_module_clock_gating(CG_IIM, CGM_ON_ALL);
53 product_rev = IIM_PREV;
54 system_rev = IIM_SREV;
55}
56
35/** Watchdog timer routines **/ 57/** Watchdog timer routines **/
36 58
37/* Initialize the watchdog timer */ 59/* Initialize the watchdog timer */
@@ -155,6 +177,8 @@ void system_init(void)
155 /* MCR WFI enables wait mode */ 177 /* MCR WFI enables wait mode */
156 CLKCTL_CCMR &= ~(3 << 14); 178 CLKCTL_CCMR &= ~(3 << 14);
157 179
180 iim_init();
181
158 imx31_regset32(&SDHC1_CLOCK_CONTROL, STOP_CLK); 182 imx31_regset32(&SDHC1_CLOCK_CONTROL, STOP_CLK);
159 imx31_regset32(&SDHC2_CLOCK_CONTROL, STOP_CLK); 183 imx31_regset32(&SDHC2_CLOCK_CONTROL, STOP_CLK);
160 imx31_regset32(&RNGA_CONTROL, RNGA_CONTROL_SLEEP); 184 imx31_regset32(&RNGA_CONTROL, RNGA_CONTROL_SLEEP);