|
@@ -1854,3 +1854,99 @@ static struct omap_clk omap2420_clks[] = {
|
|
CLK("omap24xxcam", "fck", &cam_fck, CK_242X),
|
|
CLK("omap24xxcam", "fck", &cam_fck, CK_242X),
|
|
CLK(NULL, "cam_fck", &cam_fck, CK_242X),
|
|
CLK(NULL, "cam_fck", &cam_fck, CK_242X),
|
|
CLK("omap24xxcam", "ick", &cam_ick, CK_242X),
|
|
CLK("omap24xxcam", "ick", &cam_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "cam_ick", &cam_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "mailboxes_ick", &mailboxes_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "wdt4_ick", &wdt4_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "wdt4_fck", &wdt4_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "wdt3_ick", &wdt3_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "wdt3_fck", &wdt3_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "mspro_ick", &mspro_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "mspro_fck", &mspro_fck, CK_242X),
|
|
|
|
+ CLK("mmci-omap.0", "ick", &mmc_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "mmc_ick", &mmc_ick, CK_242X),
|
|
|
|
+ CLK("mmci-omap.0", "fck", &mmc_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "mmc_fck", &mmc_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "fac_ick", &fac_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "fac_fck", &fac_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "eac_ick", &eac_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "eac_fck", &eac_fck, CK_242X),
|
|
|
|
+ CLK("omap_hdq.0", "ick", &hdq_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "hdq_ick", &hdq_ick, CK_242X),
|
|
|
|
+ CLK("omap_hdq.0", "fck", &hdq_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "hdq_fck", &hdq_fck, CK_242X),
|
|
|
|
+ CLK("omap_i2c.1", "ick", &i2c1_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "i2c1_ick", &i2c1_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "i2c1_fck", &i2c1_fck, CK_242X),
|
|
|
|
+ CLK("omap_i2c.2", "ick", &i2c2_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "i2c2_ick", &i2c2_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "i2c2_fck", &i2c2_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "gpmc_fck", &gpmc_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "sdma_fck", &sdma_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "sdma_ick", &sdma_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "sdrc_ick", &sdrc_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "vlynq_ick", &vlynq_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "vlynq_fck", &vlynq_fck, CK_242X),
|
|
|
|
+ CLK(NULL, "des_ick", &des_ick, CK_242X),
|
|
|
|
+ CLK("omap-sham", "ick", &sha_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "sha_ick", &sha_ick, CK_242X),
|
|
|
|
+ CLK("omap_rng", "ick", &rng_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "rng_ick", &rng_ick, CK_242X),
|
|
|
|
+ CLK("omap-aes", "ick", &aes_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "aes_ick", &aes_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "pka_ick", &pka_ick, CK_242X),
|
|
|
|
+ CLK(NULL, "usb_fck", &usb_fck, CK_242X),
|
|
|
|
+ CLK("musb-hdrc", "fck", &osc_ck, CK_242X),
|
|
|
|
+ CLK(NULL, "timer_32k_ck", &func_32k_ck, CK_242X),
|
|
|
|
+ CLK(NULL, "timer_sys_ck", &sys_ck, CK_242X),
|
|
|
|
+ CLK(NULL, "timer_ext_ck", &alt_ck, CK_242X),
|
|
|
|
+ CLK(NULL, "cpufreq_ck", &virt_prcm_set, CK_242X),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+static const char *enable_init_clks[] = {
|
|
|
|
+ "apll96_ck",
|
|
|
|
+ "apll54_ck",
|
|
|
|
+ "sync_32k_ick",
|
|
|
|
+ "omapctrl_ick",
|
|
|
|
+ "gpmc_fck",
|
|
|
|
+ "sdrc_ick",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * init code
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+int __init omap2420_clk_init(void)
|
|
|
|
+{
|
|
|
|
+ struct omap_clk *c;
|
|
|
|
+
|
|
|
|
+ prcm_clksrc_ctrl = OMAP2420_PRCM_CLKSRC_CTRL;
|
|
|
|
+ cpu_mask = RATE_IN_242X;
|
|
|
|
+ rate_table = omap2420_rate_table;
|
|
|
|
+
|
|
|
|
+ omap2xxx_clkt_dpllcore_init(&dpll_ck_hw.hw);
|
|
|
|
+
|
|
|
|
+ omap2xxx_clkt_vps_check_bootloader_rates();
|
|
|
|
+
|
|
|
|
+ for (c = omap2420_clks; c < omap2420_clks + ARRAY_SIZE(omap2420_clks);
|
|
|
|
+ c++) {
|
|
|
|
+ clkdev_add(&c->lk);
|
|
|
|
+ if (!__clk_init(NULL, c->lk.clk))
|
|
|
|
+ omap2_init_clk_hw_omap_clocks(c->lk.clk);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ omap2xxx_clkt_vps_late_init();
|
|
|
|
+
|
|
|
|
+ omap2_clk_disable_autoidle_all();
|
|
|
|
+
|
|
|
|
+ omap2_clk_enable_init_clocks(enable_init_clks,
|
|
|
|
+ ARRAY_SIZE(enable_init_clks));
|
|
|
|
+
|
|
|
|
+ pr_info("Clocking rate (Crystal/DPLL/MPU): %ld.%01ld/%ld/%ld MHz\n",
|
|
|
|
+ (clk_get_rate(&sys_ck) / 1000000),
|
|
|
|
+ (clk_get_rate(&sys_ck) / 100000) % 10,
|
|
|
|
+ (clk_get_rate(&dpll_ck) / 1000000),
|
|
|
|
+ (clk_get_rate(&mpu_ck) / 1000000));
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|