|
@@ -1976,3 +1976,92 @@ static struct omap_clk omap2430_clks[] = {
|
|
CLK(NULL, "mspro_fck", &mspro_fck, CK_243X),
|
|
CLK(NULL, "mspro_fck", &mspro_fck, CK_243X),
|
|
CLK(NULL, "fac_ick", &fac_ick, CK_243X),
|
|
CLK(NULL, "fac_ick", &fac_ick, CK_243X),
|
|
CLK(NULL, "fac_fck", &fac_fck, CK_243X),
|
|
CLK(NULL, "fac_fck", &fac_fck, CK_243X),
|
|
|
|
+ CLK("omap_hdq.0", "ick", &hdq_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "hdq_ick", &hdq_ick, CK_243X),
|
|
|
|
+ CLK("omap_hdq.1", "fck", &hdq_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "hdq_fck", &hdq_fck, CK_243X),
|
|
|
|
+ CLK("omap_i2c.1", "ick", &i2c1_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "i2c1_ick", &i2c1_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "i2chs1_fck", &i2chs1_fck, CK_243X),
|
|
|
|
+ CLK("omap_i2c.2", "ick", &i2c2_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "i2c2_ick", &i2c2_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "i2chs2_fck", &i2chs2_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "gpmc_fck", &gpmc_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "sdma_fck", &sdma_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "sdma_ick", &sdma_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "sdrc_ick", &sdrc_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "des_ick", &des_ick, CK_243X),
|
|
|
|
+ CLK("omap-sham", "ick", &sha_ick, CK_243X),
|
|
|
|
+ CLK("omap_rng", "ick", &rng_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "rng_ick", &rng_ick, CK_243X),
|
|
|
|
+ CLK("omap-aes", "ick", &aes_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "pka_ick", &pka_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "usb_fck", &usb_fck, CK_243X),
|
|
|
|
+ CLK("musb-omap2430", "ick", &usbhs_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "usbhs_ick", &usbhs_ick, CK_243X),
|
|
|
|
+ CLK("omap_hsmmc.0", "ick", &mmchs1_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "mmchs1_ick", &mmchs1_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "mmchs1_fck", &mmchs1_fck, CK_243X),
|
|
|
|
+ CLK("omap_hsmmc.1", "ick", &mmchs2_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "mmchs2_ick", &mmchs2_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "mmchs2_fck", &mmchs2_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "gpio5_ick", &gpio5_ick, CK_243X),
|
|
|
|
+ CLK(NULL, "gpio5_fck", &gpio5_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "mdm_intc_ick", &mdm_intc_ick, CK_243X),
|
|
|
|
+ CLK("omap_hsmmc.0", "mmchsdb_fck", &mmchsdb1_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "mmchsdb1_fck", &mmchsdb1_fck, CK_243X),
|
|
|
|
+ CLK("omap_hsmmc.1", "mmchsdb_fck", &mmchsdb2_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "mmchsdb2_fck", &mmchsdb2_fck, CK_243X),
|
|
|
|
+ CLK(NULL, "timer_32k_ck", &func_32k_ck, CK_243X),
|
|
|
|
+ CLK(NULL, "timer_sys_ck", &sys_ck, CK_243X),
|
|
|
|
+ CLK(NULL, "timer_ext_ck", &alt_ck, CK_243X),
|
|
|
|
+ CLK(NULL, "cpufreq_ck", &virt_prcm_set, CK_243X),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const char *enable_init_clks[] = {
|
|
|
|
+ "apll96_ck",
|
|
|
|
+ "apll54_ck",
|
|
|
|
+ "sync_32k_ick",
|
|
|
|
+ "omapctrl_ick",
|
|
|
|
+ "gpmc_fck",
|
|
|
|
+ "sdrc_ick",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * init code
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+int __init omap2430_clk_init(void)
|
|
|
|
+{
|
|
|
|
+ struct omap_clk *c;
|
|
|
|
+
|
|
|
|
+ prcm_clksrc_ctrl = OMAP2430_PRCM_CLKSRC_CTRL;
|
|
|
|
+ cpu_mask = RATE_IN_243X;
|
|
|
|
+ rate_table = omap2430_rate_table;
|
|
|
|
+
|
|
|
|
+ omap2xxx_clkt_dpllcore_init(&dpll_ck_hw.hw);
|
|
|
|
+
|
|
|
|
+ omap2xxx_clkt_vps_check_bootloader_rates();
|
|
|
|
+
|
|
|
|
+ for (c = omap2430_clks; c < omap2430_clks + ARRAY_SIZE(omap2430_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;
|
|
|
|
+}
|