summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/system-imx233.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/system-imx233.c')
-rw-r--r--firmware/target/arm/imx233/system-imx233.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/system-imx233.c b/firmware/target/arm/imx233/system-imx233.c
index 07ab62d680..68f063512d 100644
--- a/firmware/target/arm/imx233/system-imx233.c
+++ b/firmware/target/arm/imx233/system-imx233.c
@@ -36,6 +36,7 @@
36#include "lradc-imx233.h" 36#include "lradc-imx233.h"
37#include "rtc-imx233.h" 37#include "rtc-imx233.h"
38#include "power-imx233.h" 38#include "power-imx233.h"
39#include "emi-imx233.h"
39#include "lcd.h" 40#include "lcd.h"
40#include "backlight-target.h" 41#include "backlight-target.h"
41#include "button.h" 42#include "button.h"
@@ -196,6 +197,8 @@ void set_cpu_frequency(long frequency)
196 imx233_clkctrl_set_fractional_divisor(CLK_CPU, 19); 197 imx233_clkctrl_set_fractional_divisor(CLK_CPU, 19);
197 imx233_clkctrl_set_clock_divisor(CLK_CPU, 1); 198 imx233_clkctrl_set_clock_divisor(CLK_CPU, 1);
198 imx233_clkctrl_set_bypass_pll(CLK_CPU, false); 199 imx233_clkctrl_set_bypass_pll(CLK_CPU, false);
200
201 imx233_emi_set_frequency(IMX233_EMIFREQ_130_MHz);
199 /* ref_cpu@480 MHz 202 /* ref_cpu@480 MHz
200 * ref_emi@480 MHz 203 * ref_emi@480 MHz
201 * clk_emi@130.91 MHz 204 * clk_emi@130.91 MHz
@@ -211,12 +214,30 @@ void set_cpu_frequency(long frequency)
211 imx233_clkctrl_set_fractional_divisor(CLK_CPU, 33); 214 imx233_clkctrl_set_fractional_divisor(CLK_CPU, 33);
212 imx233_clkctrl_set_clock_divisor(CLK_CPU, 1); 215 imx233_clkctrl_set_clock_divisor(CLK_CPU, 1);
213 imx233_clkctrl_set_bypass_pll(CLK_CPU, false); 216 imx233_clkctrl_set_bypass_pll(CLK_CPU, false);
217
218 imx233_emi_set_frequency(IMX233_EMIFREQ_130_MHz);
214 /* ref_cpu@480 MHz 219 /* ref_cpu@480 MHz
215 * ref_emi@480 MHz 220 * ref_emi@480 MHz
216 * clk_emi@130.91 MHz 221 * clk_emi@130.91 MHz
217 * clk_p@261.82 MHz 222 * clk_p@261.82 MHz
218 * clk_h@130.91 MHz */ 223 * clk_h@130.91 MHz */
219 break; 224 break;
225 case IMX233_CPUFREQ_64_MHz:
226 /* set VDDD to 1.050 mV (brownout at 0.975 mV) */
227 imx233_power_set_regulator(REGULATOR_VDDD, 1050, 975);
228 /* clk_h@clk_p */
229 imx233_clkctrl_set_clock_divisor(CLK_HBUS, 1);
230 /* clk_p@ref_cpu/5*18/27 */
231 imx233_clkctrl_set_fractional_divisor(CLK_CPU, 27);
232 imx233_clkctrl_set_clock_divisor(CLK_CPU, 5);
233 imx233_clkctrl_set_bypass_pll(CLK_CPU, false);
234
235 imx233_emi_set_frequency(IMX233_EMIFREQ_64_MHz);
236 /* ref_cpu@480 MHz
237 * ref_emi@480 MHz
238 * clk_emi@64 MHz
239 * clk_p@64 MHz
240 * clk_h@64 MHz */
220 default: 241 default:
221 break; 242 break;
222 } 243 }