]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-omap2/clock24xx.h
OMAP clock: remove VIRTUAL_CLOCK
[linux-2.6-omap-h63xx.git] / arch / arm / mach-omap2 / clock24xx.h
index 929a257e92af6433a16f4cd28b57032c2c7be8ff..8e0b3f737d80611f7cb7d36930281b6025dca659 100644 (file)
 #include "cm-regbits-24xx.h"
 #include "sdrc.h"
 
-static void omap2_table_mpu_recalc(struct clk *clk);
+static void omap2_table_mpu_recalc(struct clk *clk, unsigned long parent_rate,
+                                  u8 rate_storage);
 static int omap2_select_table_rate(struct clk *clk, unsigned long rate);
 static long omap2_round_to_table_rate(struct clk *clk, unsigned long rate);
-static void omap2_sys_clk_recalc(struct clk *clk);
-static void omap2_osc_clk_recalc(struct clk *clk);
-static void omap2_sys_clk_recalc(struct clk *clk);
-static void omap2_dpllcore_recalc(struct clk *clk);
+static void omap2_sys_clk_recalc(struct clk *clk, unsigned long parent_rate,
+                                u8 rate_storage);
+static void omap2_osc_clk_recalc(struct clk *clk, unsigned long parent_rate,
+                                u8 rate_storage);
+static void omap2_dpllcore_recalc(struct clk *clk, unsigned long parent_rate,
+                                u8 rate_storage);
 static int omap2_clk_fixed_enable(struct clk *clk);
 static void omap2_clk_fixed_disable(struct clk *clk);
 static int omap2_enable_osc_ck(struct clk *clk);
@@ -625,16 +628,14 @@ static struct clk func_32k_ck = {
        .name           = "func_32k_ck",
        .rate           = 32000,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_FIXED | ALWAYS_ENABLED | RATE_PROPAGATES,
+                               ALWAYS_ENABLED,
        .clkdm          = { .name = "prm_clkdm" },
-       .recalc         = &propagate_rate,
 };
 
 /* Typical 12/13MHz in standalone mode, will be 26Mhz in chassis mode */
 static struct clk osc_ck = {           /* (*12, *13, 19.2, *26, 38.4)MHz */
        .name           = "osc_ck",
-       .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES,
+       .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X,
        .clkdm          = { .name = "prm_clkdm" },
        .enable         = &omap2_enable_osc_ck,
        .disable        = &omap2_disable_osc_ck,
@@ -646,7 +647,7 @@ static struct clk sys_ck = {                /* (*12, *13, 19.2, 26, 38.4)MHz */
        .name           = "sys_ck",             /* ~ ref_clk also */
        .parent         = &osc_ck,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               ALWAYS_ENABLED | RATE_PROPAGATES,
+                               ALWAYS_ENABLED,
        .clkdm          = { .name = "prm_clkdm" },
        .recalc         = &omap2_sys_clk_recalc,
 };
@@ -655,9 +656,8 @@ static struct clk alt_ck = {                /* Typical 54M or 48M, may not exist */
        .name           = "alt_ck",
        .rate           = 54000000,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_FIXED | ALWAYS_ENABLED | RATE_PROPAGATES,
+                               ALWAYS_ENABLED,
        .clkdm          = { .name = "prm_clkdm" },
-       .recalc         = &propagate_rate,
 };
 
 /*
@@ -691,7 +691,7 @@ static struct clk dpll_ck = {
        .prcm_mod       = PLL_MOD,
        .dpll_data      = &dpll_dd,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES | ALWAYS_ENABLED,
+                               ALWAYS_ENABLED,
        .clkdm          = { .name = "prm_clkdm" },
        .recalc         = &omap2_dpllcore_recalc,
        .set_rate       = &omap2_reprogram_dpllcore,
@@ -703,13 +703,12 @@ static struct clk apll96_ck = {
        .prcm_mod       = PLL_MOD,
        .rate           = 96000000,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_FIXED | RATE_PROPAGATES | ENABLE_ON_INIT,
+                               ENABLE_ON_INIT,
        .clkdm          = { .name = "prm_clkdm" },
        .enable_reg     = CM_CLKEN,
        .enable_bit     = OMAP24XX_EN_96M_PLL_SHIFT,
        .enable         = &omap2_clk_fixed_enable,
        .disable        = &omap2_clk_fixed_disable,
-       .recalc         = &propagate_rate,
 };
 
 static struct clk apll54_ck = {
@@ -718,13 +717,12 @@ static struct clk apll54_ck = {
        .prcm_mod       = PLL_MOD,
        .rate           = 54000000,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_FIXED | RATE_PROPAGATES | ENABLE_ON_INIT,
+                               ENABLE_ON_INIT,
        .clkdm          = { .name = "prm_clkdm" },
        .enable_reg     = CM_CLKEN,
        .enable_bit     = OMAP24XX_EN_54M_PLL_SHIFT,
        .enable         = &omap2_clk_fixed_enable,
        .disable        = &omap2_clk_fixed_disable,
-       .recalc         = &propagate_rate,
 };
 
 /*
@@ -754,7 +752,7 @@ static struct clk func_54m_ck = {
        .parent         = &apll54_ck,   /* can also be alt_clk */
        .prcm_mod       = PLL_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES | PARENT_CONTROLS_CLOCK,
+                               PARENT_CONTROLS_CLOCK,
        .clkdm          = { .name = "cm_clkdm" },
        .init           = &omap2_init_clksel_parent,
        .clksel_reg     = CM_CLKSEL1,
@@ -767,7 +765,7 @@ static struct clk core_ck = {
        .name           = "core_ck",
        .parent         = &dpll_ck,             /* can also be 32k */
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               ALWAYS_ENABLED | RATE_PROPAGATES,
+                               ALWAYS_ENABLED,
        .clkdm          = { .name = "cm_clkdm" },
        .recalc         = &followparent_recalc,
 };
@@ -795,7 +793,7 @@ static struct clk func_96m_ck = {
        .parent         = &apll96_ck,
        .prcm_mod       = PLL_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES | PARENT_CONTROLS_CLOCK,
+                               PARENT_CONTROLS_CLOCK,
        .clkdm          = { .name = "cm_clkdm" },
        .init           = &omap2_init_clksel_parent,
        .clksel_reg     = CM_CLKSEL1,
@@ -829,7 +827,7 @@ static struct clk func_48m_ck = {
        .parent         = &apll96_ck,    /* 96M or Alt */
        .prcm_mod       = PLL_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES | PARENT_CONTROLS_CLOCK,
+                               PARENT_CONTROLS_CLOCK,
        .clkdm          = { .name = "cm_clkdm" },
        .init           = &omap2_init_clksel_parent,
        .clksel_reg     = CM_CLKSEL1,
@@ -845,7 +843,7 @@ static struct clk func_12m_ck = {
        .parent         = &func_48m_ck,
        .fixed_div      = 4,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES | PARENT_CONTROLS_CLOCK,
+                               PARENT_CONTROLS_CLOCK,
        .clkdm          = { .name = "cm_clkdm" },
        .recalc         = &omap2_fixed_divisor_recalc,
 };
@@ -899,8 +897,7 @@ static struct clk sys_clkout_src = {
        .name           = "sys_clkout_src",
        .parent         = &func_54m_ck,
        .prcm_mod       = OMAP24XX_GR_MOD,
-       .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               RATE_PROPAGATES,
+       .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X,
        .clkdm          = { .name = "prm_clkdm" },
        .enable_reg     = OMAP24XX_PRCM_CLKOUT_CTRL_OFFSET,
        .enable_bit     = OMAP24XX_CLKOUT_EN_SHIFT,
@@ -947,7 +944,7 @@ static struct clk sys_clkout2_src = {
        .name           = "sys_clkout2_src",
        .parent         = &func_54m_ck,
        .prcm_mod       = OMAP24XX_GR_MOD,
-       .flags          = CLOCK_IN_OMAP242X | RATE_PROPAGATES,
+       .flags          = CLOCK_IN_OMAP242X,
        .clkdm          = { .name = "cm_clkdm" },
        .enable_reg     = OMAP24XX_PRCM_CLKOUT_CTRL_OFFSET,
        .enable_bit     = OMAP2420_CLKOUT2_EN_SHIFT,
@@ -1022,7 +1019,7 @@ static struct clk mpu_ck = {      /* Control cpu */
        .prcm_mod       = MPU_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
                                ALWAYS_ENABLED | DELAYED_APP |
-                               CONFIG_PARTICIPANT | RATE_PROPAGATES,
+                               CONFIG_PARTICIPANT,
        .clkdm          = { .name = "mpu_clkdm" },
        .init           = &omap2_init_clksel_parent,
        .clksel_reg     = CM_CLKSEL,
@@ -1065,7 +1062,7 @@ static struct clk dsp_fck = {
        .parent         = &core_ck,
        .prcm_mod       = OMAP24XX_DSP_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X | DELAYED_APP |
-                               CONFIG_PARTICIPANT | RATE_PROPAGATES,
+                               CONFIG_PARTICIPANT,
        .clkdm          = { .name = "dsp_clkdm" },
        .enable_reg     = CM_FCLKEN,
        .enable_bit     = OMAP24XX_CM_FCLKEN_DSP_EN_DSP_SHIFT,
@@ -1137,8 +1134,7 @@ static struct clk iva1_ifck = {
        .name           = "iva1_ifck",
        .parent         = &core_ck,
        .prcm_mod       = OMAP24XX_DSP_MOD,
-       .flags          = CLOCK_IN_OMAP242X | CONFIG_PARTICIPANT |
-                               RATE_PROPAGATES | DELAYED_APP,
+       .flags          = CLOCK_IN_OMAP242X | CONFIG_PARTICIPANT | DELAYED_APP,
        .clkdm          = { .name = "iva1_clkdm" },
        .enable_reg     = CM_FCLKEN,
        .enable_bit     = OMAP2420_EN_IVA_COP_SHIFT,
@@ -1204,7 +1200,7 @@ static struct clk core_l3_ck = {  /* Used for ick and fck, interconnect */
        .prcm_mod       = CORE_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
                                ALWAYS_ENABLED | DELAYED_APP |
-                               CONFIG_PARTICIPANT | RATE_PROPAGATES,
+                               CONFIG_PARTICIPANT,
        .clkdm          = { .name = "core_l3_clkdm" },
        .clksel_reg     = CM_CLKSEL1,
        .clksel_mask    = OMAP24XX_CLKSEL_L3_MASK,
@@ -1269,7 +1265,7 @@ static struct clk l4_ck = {               /* used both as an ick and fck */
        .parent         = &core_l3_ck,
        .prcm_mod       = CORE_MOD,
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               ALWAYS_ENABLED | DELAYED_APP | RATE_PROPAGATES,
+                               ALWAYS_ENABLED | DELAYED_APP,
        .clkdm          = { .name = "core_l4_clkdm" },
        .clksel_reg     = CM_CLKSEL1,
        .clksel_mask    = OMAP24XX_CLKSEL_L4_MASK,
@@ -2849,7 +2845,7 @@ static struct clk mmchsdb2_fck = {
 static struct clk virt_prcm_set = {
        .name           = "virt_prcm_set",
        .flags          = CLOCK_IN_OMAP242X | CLOCK_IN_OMAP243X |
-                               VIRTUAL_CLOCK | ALWAYS_ENABLED | DELAYED_APP,
+                               ALWAYS_ENABLED | DELAYED_APP,
        .clkdm          = { .name = "virt_opp_clkdm" },
        .parent         = &mpu_ck,      /* Indexed by mpu speed, no parent */
        .recalc         = &omap2_table_mpu_recalc,      /* sets are keyed on mpu rate */