|
@@ -1210,3 +1210,109 @@ static struct clk mcspi2_fck;
|
|
|
|
|
|
static struct clk_hw_omap mcspi2_fck_hw = {
|
|
|
.hw = {
|
|
|
+ .clk = &mcspi2_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MCSPI2_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcspi2_fck, mcspi1_fck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mcspi2_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mcspi2_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcspi2_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MCSPI2_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcspi2_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mcspi3_fck;
|
|
|
+
|
|
|
+static struct clk_hw_omap mcspi3_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcspi3_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_FCLKEN2),
|
|
|
+ .enable_bit = OMAP2430_EN_MCSPI3_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcspi3_fck, mcspi1_fck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mcspi3_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mcspi3_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcspi3_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
+ .enable_bit = OMAP2430_EN_MCSPI3_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcspi3_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static const struct clksel_rate mdm_ick_core_rates[] = {
|
|
|
+ { .div = 1, .val = 1, .flags = RATE_IN_243X },
|
|
|
+ { .div = 4, .val = 4, .flags = RATE_IN_243X },
|
|
|
+ { .div = 6, .val = 6, .flags = RATE_IN_243X },
|
|
|
+ { .div = 9, .val = 9, .flags = RATE_IN_243X },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel mdm_ick_clksel[] = {
|
|
|
+ { .parent = &core_ck, .rates = mdm_ick_core_rates },
|
|
|
+ { .parent = NULL },
|
|
|
+};
|
|
|
+
|
|
|
+static const char *mdm_ick_parent_names[] = {
|
|
|
+ "core_ck",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(mdm_ick, "mdm_clkdm", mdm_ick_clksel,
|
|
|
+ OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_CLKSEL),
|
|
|
+ OMAP2430_CLKSEL_MDM_MASK,
|
|
|
+ OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_ICLKEN),
|
|
|
+ OMAP2430_CM_ICLKEN_MDM_EN_MDM_SHIFT,
|
|
|
+ &clkhwops_iclk_wait, mdm_ick_parent_names,
|
|
|
+ dsp_fck_ops);
|
|
|
+
|
|
|
+static struct clk mdm_intc_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mdm_intc_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mdm_intc_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN2),
|
|
|
+ .enable_bit = OMAP2430_EN_MDM_INTC_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mdm_intc_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mdm_osc_ck;
|
|
|
+
|
|
|
+static struct clk_hw_omap mdm_osc_ck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mdm_osc_ck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP2430_MDM_MOD, CM_FCLKEN),
|
|
|
+ .enable_bit = OMAP2430_EN_OSC_SHIFT,
|
|
|
+ .clkdm_name = "mdm_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mdm_osc_ck, sys_ck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mmchs1_fck;
|