|
@@ -1478,3 +1478,146 @@ DEFINE_STRUCT_CLK(omapctrl_ick, gpios_ick_parent_names, aes_ick_ops);
|
|
static struct clk pka_ick;
|
|
static struct clk pka_ick;
|
|
|
|
|
|
static struct clk_hw_omap pka_ick_hw = {
|
|
static struct clk_hw_omap pka_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &pka_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_PKA_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(pka_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk rng_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap rng_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &rng_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_RNG_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(rng_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk sdma_fck;
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK_HW_OMAP(sdma_fck, "core_l3_clkdm");
|
|
|
|
+DEFINE_STRUCT_CLK(sdma_fck, gfx_ick_parent_names, core_ck_ops);
|
|
|
|
+
|
|
|
|
+static struct clk sdma_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap sdma_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &sdma_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3),
|
|
|
|
+ .enable_bit = OMAP24XX_AUTO_SDMA_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(sdma_ick, gfx_ick_parent_names, core_ck_ops);
|
|
|
|
+
|
|
|
|
+static struct clk sdrc_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap sdrc_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &sdrc_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3),
|
|
|
|
+ .enable_bit = OMAP2430_EN_SDRC_SHIFT,
|
|
|
|
+ .flags = ENABLE_ON_INIT,
|
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(sdrc_ick, gfx_ick_parent_names, core_ck_ops);
|
|
|
|
+
|
|
|
|
+static struct clk sha_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap sha_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &sha_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_SHA_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(sha_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static struct clk ssi_l4_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap ssi_l4_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &ssi_l4_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_SSI_SHIFT,
|
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(ssi_l4_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static const struct clksel_rate ssi_ssr_sst_fck_core_rates[] = {
|
|
|
|
+ { .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 2, .val = 2, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 3, .val = 3, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 4, .val = 4, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 5, .val = 5, .flags = RATE_IN_243X },
|
|
|
|
+ { .div = 0 }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct clksel ssi_ssr_sst_fck_clksel[] = {
|
|
|
|
+ { .parent = &core_ck, .rates = ssi_ssr_sst_fck_core_rates },
|
|
|
|
+ { .parent = NULL },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const char *ssi_ssr_sst_fck_parent_names[] = {
|
|
|
|
+ "core_ck",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(ssi_ssr_sst_fck, "core_l3_clkdm",
|
|
|
|
+ ssi_ssr_sst_fck_clksel,
|
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1),
|
|
|
|
+ OMAP24XX_CLKSEL_SSI_MASK,
|
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
|
|
|
+ OMAP24XX_EN_SSI_SHIFT, &clkhwops_wait,
|
|
|
|
+ ssi_ssr_sst_fck_parent_names, dsp_fck_ops);
|
|
|
|
+
|
|
|
|
+static struct clk sync_32k_ick;
|
|
|
|
+
|
|
|
|
+static struct clk_hw_omap sync_32k_ick_hw = {
|
|
|
|
+ .hw = {
|
|
|
|
+ .clk = &sync_32k_ick,
|
|
|
|
+ },
|
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
|
|
|
|
+ .enable_bit = OMAP24XX_EN_32KSYNC_SHIFT,
|
|
|
|
+ .flags = ENABLE_ON_INIT,
|
|
|
|
+ .clkdm_name = "wkup_clkdm",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+DEFINE_STRUCT_CLK(sync_32k_ick, gpios_ick_parent_names, aes_ick_ops);
|
|
|
|
+
|
|
|
|
+static const struct clksel_rate common_clkout_src_core_rates[] = {
|
|
|
|
+ { .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 0 }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct clksel_rate common_clkout_src_sys_rates[] = {
|
|
|
|
+ { .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 0 }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static const struct clksel_rate common_clkout_src_96m_rates[] = {
|
|
|
|
+ { .div = 1, .val = 2, .flags = RATE_IN_24XX },
|
|
|
|
+ { .div = 0 }
|
|
|
|
+};
|
|
|
|
+
|