|
@@ -2536,3 +2536,73 @@ static struct clk_hw_omap sdrc_ick_hw = {
|
|
|
},
|
|
|
.ops = &clkhwops_wait,
|
|
|
.enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP3430_EN_SDRC_SHIFT,
|
|
|
+ .flags = ENABLE_ON_INIT,
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(sdrc_ick, ipss_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static const struct clksel_rate sgx_core_rates[] = {
|
|
|
+ { .div = 2, .val = 5, .flags = RATE_IN_36XX },
|
|
|
+ { .div = 3, .val = 0, .flags = RATE_IN_3XXX },
|
|
|
+ { .div = 4, .val = 1, .flags = RATE_IN_3XXX },
|
|
|
+ { .div = 6, .val = 2, .flags = RATE_IN_3XXX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel_rate sgx_96m_rates[] = {
|
|
|
+ { .div = 1, .val = 3, .flags = RATE_IN_3XXX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel_rate sgx_192m_rates[] = {
|
|
|
+ { .div = 1, .val = 4, .flags = RATE_IN_36XX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel_rate sgx_corex2_rates[] = {
|
|
|
+ { .div = 3, .val = 6, .flags = RATE_IN_36XX },
|
|
|
+ { .div = 5, .val = 7, .flags = RATE_IN_36XX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel sgx_clksel[] = {
|
|
|
+ { .parent = &core_ck, .rates = sgx_core_rates },
|
|
|
+ { .parent = &cm_96m_fck, .rates = sgx_96m_rates },
|
|
|
+ { .parent = &omap_192m_alwon_fck, .rates = sgx_192m_rates },
|
|
|
+ { .parent = &corex2_fck, .rates = sgx_corex2_rates },
|
|
|
+ { .parent = NULL },
|
|
|
+};
|
|
|
+
|
|
|
+static const char *sgx_fck_parent_names[] = {
|
|
|
+ "core_ck", "cm_96m_fck", "omap_192m_alwon_fck", "corex2_fck",
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk sgx_fck;
|
|
|
+
|
|
|
+static const struct clk_ops sgx_fck_ops = {
|
|
|
+ .init = &omap2_init_clk_clkdm,
|
|
|
+ .enable = &omap2_dflt_clk_enable,
|
|
|
+ .disable = &omap2_dflt_clk_disable,
|
|
|
+ .is_enabled = &omap2_dflt_clk_is_enabled,
|
|
|
+ .recalc_rate = &omap2_clksel_recalc,
|
|
|
+ .set_rate = &omap2_clksel_set_rate,
|
|
|
+ .round_rate = &omap2_clksel_round_rate,
|
|
|
+ .get_parent = &omap2_clksel_find_parent_index,
|
|
|
+ .set_parent = &omap2_clksel_set_parent,
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(sgx_fck, "sgx_clkdm", sgx_clksel,
|
|
|
+ OMAP_CM_REGADDR(OMAP3430ES2_SGX_MOD, CM_CLKSEL),
|
|
|
+ OMAP3430ES2_CLKSEL_SGX_MASK,
|
|
|
+ OMAP_CM_REGADDR(OMAP3430ES2_SGX_MOD, CM_FCLKEN),
|
|
|
+ OMAP3430ES2_CM_FCLKEN_SGX_EN_SGX_SHIFT,
|
|
|
+ &clkhwops_wait, sgx_fck_parent_names, sgx_fck_ops);
|
|
|
+
|
|
|
+static struct clk sgx_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap sgx_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &sgx_ick,
|
|
|
+ },
|