|
@@ -1789,3 +1789,89 @@ static const char *virt_prcm_set_parent_names[] = {
|
|
|
};
|
|
|
|
|
|
static const struct clk_ops virt_prcm_set_ops = {
|
|
|
+ .recalc_rate = &omap2_table_mpu_recalc,
|
|
|
+ .set_rate = &omap2_select_table_rate,
|
|
|
+ .round_rate = &omap2_round_to_table_rate,
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK_HW_OMAP(virt_prcm_set, NULL);
|
|
|
+DEFINE_STRUCT_CLK(virt_prcm_set, virt_prcm_set_parent_names, virt_prcm_set_ops);
|
|
|
+
|
|
|
+static struct clk wdt1_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap wdt1_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &wdt1_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
|
|
|
+ .enable_bit = OMAP24XX_EN_WDT1_SHIFT,
|
|
|
+ .clkdm_name = "wkup_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(wdt1_ick, gpios_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk wdt1_osc_ck;
|
|
|
+
|
|
|
+static const struct clk_ops wdt1_osc_ck_ops = {};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK_HW_OMAP(wdt1_osc_ck, NULL);
|
|
|
+DEFINE_STRUCT_CLK(wdt1_osc_ck, sys_ck_parent_names, wdt1_osc_ck_ops);
|
|
|
+
|
|
|
+static struct clk wdt4_fck;
|
|
|
+
|
|
|
+static struct clk_hw_omap wdt4_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &wdt4_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_WDT4_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(wdt4_fck, gpio5_fck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk wdt4_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap wdt4_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &wdt4_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_WDT4_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(wdt4_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+/*
|
|
|
+ * clkdev integration
|
|
|
+ */
|
|
|
+
|
|
|
+static struct omap_clk omap2430_clks[] = {
|
|
|
+ /* external root sources */
|
|
|
+ CLK(NULL, "func_32k_ck", &func_32k_ck, CK_243X),
|
|
|
+ CLK(NULL, "secure_32k_ck", &secure_32k_ck, CK_243X),
|
|
|
+ CLK(NULL, "osc_ck", &osc_ck, CK_243X),
|
|
|
+ CLK("twl", "fck", &osc_ck, CK_243X),
|
|
|
+ CLK(NULL, "sys_ck", &sys_ck, CK_243X),
|
|
|
+ CLK(NULL, "alt_ck", &alt_ck, CK_243X),
|
|
|
+ CLK(NULL, "mcbsp_clks", &mcbsp_clks, CK_243X),
|
|
|
+ /* internal analog sources */
|
|
|
+ CLK(NULL, "dpll_ck", &dpll_ck, CK_243X),
|
|
|
+ CLK(NULL, "apll96_ck", &apll96_ck, CK_243X),
|
|
|
+ CLK(NULL, "apll54_ck", &apll54_ck, CK_243X),
|
|
|
+ /* internal prcm root sources */
|
|
|
+ CLK(NULL, "func_54m_ck", &func_54m_ck, CK_243X),
|
|
|
+ CLK(NULL, "core_ck", &core_ck, CK_243X),
|
|
|
+ CLK(NULL, "func_96m_ck", &func_96m_ck, CK_243X),
|
|
|
+ CLK(NULL, "func_48m_ck", &func_48m_ck, CK_243X),
|
|
|
+ CLK(NULL, "func_12m_ck", &func_12m_ck, CK_243X),
|
|
|
+ CLK(NULL, "ck_wdt1_osc", &wdt1_osc_ck, CK_243X),
|
|
|
+ CLK(NULL, "sys_clkout_src", &sys_clkout_src, CK_243X),
|
|
|
+ CLK(NULL, "sys_clkout", &sys_clkout, CK_243X),
|
|
|
+ CLK(NULL, "emul_ck", &emul_ck, CK_243X),
|
|
|
+ /* mpu domain clocks */
|
|
|
+ CLK(NULL, "mpu_ck", &mpu_ck, CK_243X),
|