|
@@ -1407,3 +1407,174 @@ DEFINE_STRUCT_CLK(gpio3_ick, gpio2_ick_parent_names, aes2_ick_ops);
|
|
|
static struct clk gpio4_dbck;
|
|
|
|
|
|
static struct clk_hw_omap gpio4_dbck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpio4_dbck,
|
|
|
+ },
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPIO4_SHIFT,
|
|
|
+ .clkdm_name = "per_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio4_dbck, gpio2_dbck_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpio4_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpio4_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpio4_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_ICLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPIO4_SHIFT,
|
|
|
+ .clkdm_name = "per_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio4_ick, gpio2_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpio5_dbck;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpio5_dbck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpio5_dbck,
|
|
|
+ },
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPIO5_SHIFT,
|
|
|
+ .clkdm_name = "per_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio5_dbck, gpio2_dbck_parent_names, aes2_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(OMAP3430_PER_MOD, CM_ICLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPIO5_SHIFT,
|
|
|
+ .clkdm_name = "per_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio5_ick, gpio2_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpio6_dbck;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpio6_dbck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpio6_dbck,
|
|
|
+ },
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPIO6_SHIFT,
|
|
|
+ .clkdm_name = "per_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio6_dbck, gpio2_dbck_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpio6_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpio6_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpio6_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_ICLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPIO6_SHIFT,
|
|
|
+ .clkdm_name = "per_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpio6_ick, gpio2_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpmc_fck;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpmc_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpmc_fck,
|
|
|
+ },
|
|
|
+ .flags = ENABLE_ON_INIT,
|
|
|
+ .clkdm_name = "core_l3_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpmc_fck, ipss_ick_parent_names, core_l4_ick_ops);
|
|
|
+
|
|
|
+static const struct clksel omap343x_gpt_clksel[] = {
|
|
|
+ { .parent = &omap_32k_fck, .rates = gpt_32k_rates },
|
|
|
+ { .parent = &sys_ck, .rates = gpt_sys_rates },
|
|
|
+ { .parent = NULL },
|
|
|
+};
|
|
|
+
|
|
|
+static const char *gpt10_fck_parent_names[] = {
|
|
|
+ "omap_32k_fck", "sys_ck",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(gpt10_fck, "core_l4_clkdm", omap343x_gpt_clksel,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL),
|
|
|
+ OMAP3430_CLKSEL_GPT10_MASK,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ OMAP3430_EN_GPT10_SHIFT, &clkhwops_wait,
|
|
|
+ gpt10_fck_parent_names, clkout2_src_ck_ops);
|
|
|
+
|
|
|
+static struct clk gpt10_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpt10_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpt10_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP3430_EN_GPT10_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpt10_ick, aes2_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(gpt11_fck, "core_l4_clkdm", omap343x_gpt_clksel,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL),
|
|
|
+ OMAP3430_CLKSEL_GPT11_MASK,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ OMAP3430_EN_GPT11_SHIFT, &clkhwops_wait,
|
|
|
+ gpt10_fck_parent_names, clkout2_src_ck_ops);
|
|
|
+
|
|
|
+static struct clk gpt11_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpt11_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpt11_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP3430_EN_GPT11_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpt11_ick, aes2_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpt12_fck;
|
|
|
+
|
|
|
+static const char *gpt12_fck_parent_names[] = {
|
|
|
+ "secure_32k_fck",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK_HW_OMAP(gpt12_fck, "wkup_clkdm");
|
|
|
+DEFINE_STRUCT_CLK(gpt12_fck, gpt12_fck_parent_names, core_l4_ick_ops);
|
|
|
+
|
|
|
+static struct clk gpt12_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap gpt12_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &gpt12_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(WKUP_MOD, CM_ICLKEN),
|
|
|
+ .enable_bit = OMAP3430_EN_GPT12_SHIFT,
|
|
|
+ .clkdm_name = "wkup_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(gpt12_ick, gpio1_ick_parent_names, aes2_ick_ops);
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(gpt1_fck, "wkup_clkdm", omap343x_gpt_clksel,
|
|
|
+ OMAP_CM_REGADDR(WKUP_MOD, CM_CLKSEL),
|
|
|
+ OMAP3430_CLKSEL_GPT1_MASK,
|
|
|
+ OMAP_CM_REGADDR(WKUP_MOD, CM_FCLKEN),
|
|
|
+ OMAP3430_EN_GPT1_SHIFT, &clkhwops_wait,
|
|
|
+ gpt10_fck_parent_names, clkout2_src_ck_ops);
|