|
@@ -576,3 +576,89 @@ DEFINE_STRUCT_CLK(gpio5_fck, gpio5_fck_parent_names, aes_ick_ops);
|
|
|
static struct clk gpio5_ick;
|
|
|
|
|
|
static struct clk_hw_omap gpio5_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpio5_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
+ .enable_bit = OMAP2430_EN_GPIO5_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio5_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpios_fck;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpios_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpios_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_FCLKEN),
|
|
|
+ .enable_bit = OMAP24XX_EN_GPIOS_SHIFT,
|
|
|
+ .clkdm_name = "wkup_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpios_fck, gpio5_fck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk wu_l4_ick;
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK_HW_OMAP(wu_l4_ick, "wkup_clkdm");
|
|
|
+DEFINE_STRUCT_CLK(wu_l4_ick, dpll_ck_parent_names, core_ck_ops);
|
|
|
+
|
|
|
+static struct clk gpios_ick;
|
|
|
+
|
|
|
+static const char *gpios_ick_parent_names[] = {
|
|
|
+ "wu_l4_ick",
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk_hw_omap gpios_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpios_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
|
|
|
+ .enable_bit = OMAP24XX_EN_GPIOS_SHIFT,
|
|
|
+ .clkdm_name = "wkup_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpios_ick, gpios_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpmc_fck;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpmc_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpmc_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN3),
|
|
|
+ .enable_bit = OMAP24XX_AUTO_GPMC_SHIFT,
|
|
|
+ .flags = ENABLE_ON_INIT,
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpmc_fck, gfx_ick_parent_names, core_ck_ops);
|
|
|
+
|
|
|
+static const struct clksel_rate gpt_alt_rates[] = {
|
|
|
+ { .div = 1, .val = 2, .flags = RATE_IN_24XX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel omap24xx_gpt_clksel[] = {
|
|
|
+ { .parent = &func_32k_ck, .rates = gpt_32k_rates },
|
|
|
+ { .parent = &sys_ck, .rates = gpt_sys_rates },
|
|
|
+ { .parent = &alt_ck, .rates = gpt_alt_rates },
|
|
|
+ { .parent = NULL },
|
|
|
+};
|
|
|
+
|
|
|
+static const char *gpt10_fck_parent_names[] = {
|
|
|
+ "func_32k_ck", "sys_ck", "alt_ck",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(gpt10_fck, "core_l4_clkdm", omap24xx_gpt_clksel,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL2),
|
|
|
+ OMAP24XX_CLKSEL_GPT10_MASK,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ OMAP24XX_EN_GPT10_SHIFT, &clkhwops_wait,
|
|
|
+ gpt10_fck_parent_names, dss1_fck_ops);
|
|
|
+
|