| 
					
				 | 
			
			
				@@ -98,3 +98,130 @@ static struct dpll_data dpll_dd = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.div1_mask	= OMAP24XX_DPLL_DIV_MASK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.clk_bypass	= &sys_ck, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.clk_ref	= &sys_ck, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.control_reg	= OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_mask	= OMAP24XX_EN_DPLL_MASK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.max_multiplier	= 1023, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.min_divider	= 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.max_divider	= 16, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk dpll_ck; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const char *dpll_ck_parent_names[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"sys_ck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const struct clk_ops dpll_ck_ops = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.init		= &omap2_init_clk_clkdm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.get_parent	= &omap2_init_dpll_parent, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.recalc_rate	= &omap2_dpllcore_recalc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.round_rate	= &omap2_dpll_round_rate, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.set_rate	= &omap2_reprogram_dpllcore, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk_hw_omap dpll_ck_hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.clk = &dpll_ck, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.ops		= &clkhwops_omap2xxx_dpll, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dpll_data	= &dpll_dd, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "wkup_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_STRUCT_CLK(dpll_ck, dpll_ck_parent_names, dpll_ck_ops); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk core_ck; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const char *core_ck_parent_names[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"dpll_ck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const struct clk_ops core_ck_ops = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.init		= &omap2_init_clk_clkdm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_STRUCT_CLK_HW_OMAP(core_ck, "wkup_clkdm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_STRUCT_CLK(core_ck, core_ck_parent_names, core_ck_ops); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_CLK_DIVIDER(core_l3_ck, "core_ck", &core_ck, 0x0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   OMAP24XX_CLKSEL_L3_SHIFT, OMAP24XX_CLKSEL_L3_WIDTH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   CLK_DIVIDER_ONE_BASED, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_CLK_DIVIDER(l4_ck, "core_l3_ck", &core_l3_ck, 0x0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   OMAP_CM_REGADDR(CORE_MOD, CM_CLKSEL1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   OMAP24XX_CLKSEL_L4_SHIFT, OMAP24XX_CLKSEL_L4_WIDTH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   CLK_DIVIDER_ONE_BASED, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk aes_ick; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const char *aes_ick_parent_names[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"l4_ck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const struct clk_ops aes_ick_ops = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.init		= &omap2_init_clk_clkdm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable		= &omap2_dflt_clk_enable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.disable	= &omap2_dflt_clk_disable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.is_enabled	= &omap2_dflt_clk_is_enabled, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk_hw_omap aes_ick_hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.clk = &aes_ick, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.ops		= &clkhwops_iclk_wait, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_reg	= OMAP_CM_REGADDR(CORE_MOD, OMAP24XX_CM_ICLKEN4), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_bit	= OMAP24XX_EN_AES_SHIFT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "core_l4_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_STRUCT_CLK(aes_ick, aes_ick_parent_names, aes_ick_ops); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk apll54_ck; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const struct clk_ops apll54_ck_ops = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.init		= &omap2_init_clk_clkdm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable		= &omap2_clk_apll54_enable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.disable	= &omap2_clk_apll54_disable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.recalc_rate	= &omap2_clk_apll54_recalc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk_hw_omap apll54_ck_hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.clk = &apll54_ck, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.ops		= &clkhwops_apll54, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_reg	= OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_bit	= OMAP24XX_EN_54M_PLL_SHIFT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= ENABLE_ON_INIT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "wkup_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_STRUCT_CLK(apll54_ck, dpll_ck_parent_names, apll54_ck_ops); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk apll96_ck; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const struct clk_ops apll96_ck_ops = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.init		= &omap2_init_clk_clkdm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable		= &omap2_clk_apll96_enable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.disable	= &omap2_clk_apll96_disable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.recalc_rate	= &omap2_clk_apll96_recalc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk_hw_omap apll96_ck_hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.hw = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.clk = &apll96_ck, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.ops		= &clkhwops_apll96, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_reg	= OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.enable_bit	= OMAP24XX_EN_96M_PLL_SHIFT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= ENABLE_ON_INIT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "wkup_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+DEFINE_STRUCT_CLK(apll96_ck, dpll_ck_parent_names, apll96_ck_ops); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct clk func_96m_ck; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const char *func_96m_ck_parent_names[] = { 
			 |