diff options
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/system-imx31.c')
-rw-r--r-- | firmware/target/arm/imx31/gigabeat-s/system-imx31.c | 24 |
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 | ||
35 | static unsigned long product_rev; | ||
36 | static unsigned long system_rev; | ||
37 | |||
38 | /** IC revision info routines **/ | ||
39 | unsigned int iim_system_rev(void) | ||
40 | { | ||
41 | return system_rev & IIM_SREV_SREV; | ||
42 | } | ||
43 | |||
44 | unsigned int iim_prod_rev(void) | ||
45 | { | ||
46 | return product_rev; | ||
47 | } | ||
48 | |||
49 | static 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); |