diff options
Diffstat (limited to 'firmware/target/arm/imx233/system-imx233.c')
-rw-r--r-- | firmware/target/arm/imx233/system-imx233.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c index 9c843c48c1..6114ecca08 100644 --- a/firmware/target/arm/imx233/system-imx233.c +++ b/firmware/target/arm/imx233/system-imx233.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include "ssp-imx233.h" | 31 | #include "ssp-imx233.h" |
32 | #include "lcd.h" | 32 | #include "lcd.h" |
33 | #include "backlight-target.h" | 33 | #include "backlight-target.h" |
34 | #include "button-target.h" | ||
34 | 35 | ||
35 | #define default_interrupt(name) \ | 36 | #define default_interrupt(name) \ |
36 | extern __attribute__((weak, alias("UIRQ"))) void name(void) | 37 | extern __attribute__((weak, alias("UIRQ"))) void name(void) |
@@ -104,7 +105,13 @@ void system_reboot(void) | |||
104 | 105 | ||
105 | void system_exception_wait(void) | 106 | void system_exception_wait(void) |
106 | { | 107 | { |
107 | /* what is this supposed to do ? */ | 108 | /* make sure lcd and backlight are on */ |
109 | _backlight_on(); | ||
110 | _backlight_set_brightness(100); | ||
111 | /* wait until button release (if a button is pressed) */ | ||
112 | while(button_read_device()); | ||
113 | /* then wait until next button press */ | ||
114 | while(!button_read_device()); | ||
108 | } | 115 | } |
109 | 116 | ||
110 | void imx233_enable_interrupt(int src, bool enable) | 117 | void imx233_enable_interrupt(int src, bool enable) |
@@ -177,3 +184,23 @@ void udelay(unsigned us) | |||
177 | while(!imx233_us_elapsed(ref, us)); | 184 | while(!imx233_us_elapsed(ref, us)); |
178 | } | 185 | } |
179 | 186 | ||
187 | #ifdef HAVE_ADJUSTABLE_CPU_FREQ | ||
188 | void set_cpu_frequency(long frequency) | ||
189 | { | ||
190 | switch(frequency) | ||
191 | { | ||
192 | case IMX233_CPUFREQ_454_MHz: | ||
193 | /* clk_h@clk_p/3 */ | ||
194 | imx233_set_clock_divisor(CLK_AHB, 3); | ||
195 | /* clk_p@ref_cpu/1*18/19 */ | ||
196 | imx233_set_fractional_divisor(CLK_CPU, 19); | ||
197 | imx233_set_clock_divisor(CLK_CPU, 1); | ||
198 | /* ref_cpu@480 MHz | ||
199 | * clk_p@454.74 MHz | ||
200 | * clk_h@151.58 MHz */ | ||
201 | break; | ||
202 | default: | ||
203 | break; | ||
204 | } | ||
205 | } | ||
206 | #endif | ||