|
@@ -998,3 +998,201 @@ DEFINE_STRUCT_CLK(i2c1_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
|
|
|
static struct clk i2c2_fck;
|
|
|
|
|
|
+static struct clk_hw_omap i2c2_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &i2c2_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ .enable_bit = OMAP2420_EN_I2C2_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(i2c2_fck, fac_fck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk i2c2_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap i2c2_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &i2c2_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP2420_EN_I2C2_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(i2c2_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(iva1_ifck, "iva1_clkdm", dsp_fck_clksel,
|
|
|
+ OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_CLKSEL),
|
|
|
+ OMAP2420_CLKSEL_IVA_MASK,
|
|
|
+ OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
|
|
+ OMAP2420_EN_IVA_COP_SHIFT, &clkhwops_wait,
|
|
|
+ dsp_fck_parent_names, dsp_fck_ops);
|
|
|
+
|
|
|
+static struct clk iva1_mpu_int_ifck;
|
|
|
+
|
|
|
+static const char *iva1_mpu_int_ifck_parent_names[] = {
|
|
|
+ "iva1_ifck",
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clk_ops iva1_mpu_int_ifck_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 = &omap_fixed_divisor_recalc,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk_hw_omap iva1_mpu_int_ifck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &iva1_mpu_int_ifck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(OMAP24XX_DSP_MOD, CM_FCLKEN),
|
|
|
+ .enable_bit = OMAP2420_EN_IVA_MPU_SHIFT,
|
|
|
+ .clkdm_name = "iva1_clkdm",
|
|
|
+ .fixed_div = 2,
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(iva1_mpu_int_ifck, iva1_mpu_int_ifck_parent_names,
|
|
|
+ iva1_mpu_int_ifck_ops);
|
|
|
+
|
|
|
+static struct clk mailboxes_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mailboxes_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mailboxes_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MAILBOXES_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mailboxes_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static const struct clksel_rate common_mcbsp_96m_rates[] = {
|
|
|
+ { .div = 1, .val = 0, .flags = RATE_IN_24XX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel_rate common_mcbsp_mcbsp_rates[] = {
|
|
|
+ { .div = 1, .val = 1, .flags = RATE_IN_24XX },
|
|
|
+ { .div = 0 }
|
|
|
+};
|
|
|
+
|
|
|
+static const struct clksel mcbsp_fck_clksel[] = {
|
|
|
+ { .parent = &func_96m_ck, .rates = common_mcbsp_96m_rates },
|
|
|
+ { .parent = &mcbsp_clks, .rates = common_mcbsp_mcbsp_rates },
|
|
|
+ { .parent = NULL },
|
|
|
+};
|
|
|
+
|
|
|
+static const char *mcbsp1_fck_parent_names[] = {
|
|
|
+ "func_96m_ck", "mcbsp_clks",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(mcbsp1_fck, "core_l4_clkdm", mcbsp_fck_clksel,
|
|
|
+ OMAP242X_CTRL_REGADDR(OMAP2_CONTROL_DEVCONF0),
|
|
|
+ OMAP2_MCBSP1_CLKS_MASK,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ OMAP24XX_EN_MCBSP1_SHIFT, &clkhwops_wait,
|
|
|
+ mcbsp1_fck_parent_names, dss1_fck_ops);
|
|
|
+
|
|
|
+static struct clk mcbsp1_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mcbsp1_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcbsp1_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MCBSP1_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcbsp1_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+DEFINE_CLK_OMAP_MUX_GATE(mcbsp2_fck, "core_l4_clkdm", mcbsp_fck_clksel,
|
|
|
+ OMAP242X_CTRL_REGADDR(OMAP2_CONTROL_DEVCONF0),
|
|
|
+ OMAP2_MCBSP2_CLKS_MASK,
|
|
|
+ OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ OMAP24XX_EN_MCBSP2_SHIFT, &clkhwops_wait,
|
|
|
+ mcbsp1_fck_parent_names, dss1_fck_ops);
|
|
|
+
|
|
|
+static struct clk mcbsp2_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mcbsp2_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcbsp2_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MCBSP2_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcbsp2_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mcspi1_fck;
|
|
|
+
|
|
|
+static const char *mcspi1_fck_parent_names[] = {
|
|
|
+ "func_48m_ck",
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk_hw_omap mcspi1_fck_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcspi1_fck,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MCSPI1_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcspi1_fck, mcspi1_fck_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+static struct clk mcspi1_ick;
|
|
|
+
|
|
|
+static struct clk_hw_omap mcspi1_ick_hw = {
|
|
|
+ .hw = {
|
|
|
+ .clk = &mcspi1_ick,
|
|
|
+ },
|
|
|
+ .ops = &clkhwops_iclk_wait,
|
|
|
+ .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_ICLKEN1),
|
|
|
+ .enable_bit = OMAP24XX_EN_MCSPI1_SHIFT,
|
|
|
+ .clkdm_name = "core_l4_clkdm",
|
|
|
+};
|
|
|
+
|
|
|
+DEFINE_STRUCT_CLK(mcspi1_ick, aes_ick_parent_names, aes_ick_ops);
|
|
|
+
|
|
|
+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 mmc_fck;
|