|
@@ -579,3 +579,81 @@ static struct clk mclk_1510 = {
|
|
|
/* Direct from ULPD, no parent. May be enabled by ext hardware. */
|
|
|
.rate = 12000000,
|
|
|
.enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
|
|
|
+ .enable_bit = SOFT_COM_MCKO_REQ_SHIFT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk mclk_16xx = {
|
|
|
+ .name = "mclk",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ /* Direct from ULPD, no parent. May be enabled by ext hardware. */
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(COM_CLK_DIV_CTRL_SEL),
|
|
|
+ .enable_bit = COM_ULPD_PLL_CLK_REQ,
|
|
|
+ .set_rate = &omap1_set_ext_clk_rate,
|
|
|
+ .round_rate = &omap1_round_ext_clk_rate,
|
|
|
+ .init = &omap1_init_ext_clk,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk bclk_1510 = {
|
|
|
+ .name = "bclk",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ /* Direct from ULPD, no parent. May be enabled by ext hardware. */
|
|
|
+ .rate = 12000000,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk bclk_16xx = {
|
|
|
+ .name = "bclk",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ /* Direct from ULPD, no parent. May be enabled by ext hardware. */
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(SWD_CLK_DIV_CTRL_SEL),
|
|
|
+ .enable_bit = SWD_ULPD_PLL_CLK_REQ,
|
|
|
+ .set_rate = &omap1_set_ext_clk_rate,
|
|
|
+ .round_rate = &omap1_round_ext_clk_rate,
|
|
|
+ .init = &omap1_init_ext_clk,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk mmc1_ck = {
|
|
|
+ .name = "mmc1_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ /* Functional clock is direct from ULPD, interface clock is ARMPER */
|
|
|
+ .parent = &armper_ck.clk,
|
|
|
+ .rate = 48000000,
|
|
|
+ .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
|
|
|
+ .enable_bit = CONF_MOD_MMC_SD_CLK_REQ_R,
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * XXX MOD_CONF_CTRL_0 bit 20 is defined in the 1510 TRM as
|
|
|
+ * CONF_MOD_MCBSP3_AUXON ??
|
|
|
+ */
|
|
|
+static struct clk mmc2_ck = {
|
|
|
+ .name = "mmc2_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ /* Functional clock is direct from ULPD, interface clock is ARMPER */
|
|
|
+ .parent = &armper_ck.clk,
|
|
|
+ .rate = 48000000,
|
|
|
+ .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(MOD_CONF_CTRL_0),
|
|
|
+ .enable_bit = 20,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk mmc3_ck = {
|
|
|
+ .name = "mmc3_ck",
|
|
|
+ .ops = &clkops_generic,
|
|
|
+ /* Functional clock is direct from ULPD, interface clock is ARMPER */
|
|
|
+ .parent = &armper_ck.clk,
|
|
|
+ .rate = 48000000,
|
|
|
+ .flags = ENABLE_REG_32BIT | CLOCK_NO_IDLE_PARENT,
|
|
|
+ .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG),
|
|
|
+ .enable_bit = SOFT_MMC_DPLL_REQ_SHIFT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk virtual_ck_mpu = {
|
|
|
+ .name = "mpu",
|
|
|
+ .ops = &clkops_null,
|
|
|
+ .parent = &arm_ck, /* Is smarter alias for */
|
|
|
+ .recalc = &followparent_recalc,
|
|
|
+ .set_rate = &omap1_select_table_rate,
|
|
|
+ .round_rate = &omap1_round_to_table_rate,
|
|
|
+};
|
|
|
+
|