|  | @@ -64,3 +64,65 @@
 | 
	
		
			
				|  |  |  #define SOFT_USB_OTG_DPLL_REQ_SHIFT	8
 | 
	
		
			
				|  |  |  #define SOFT_CAM_DPLL_REQ_SHIFT		7
 | 
	
		
			
				|  |  |  #define SOFT_COM_MCKO_REQ_SHIFT		6
 | 
	
		
			
				|  |  | +#define SOFT_PERIPH_REQ_SHIFT		5	/* sys_ck gate for UART2 ? */
 | 
	
		
			
				|  |  | +#define USB_REQ_EN_SHIFT		4
 | 
	
		
			
				|  |  | +#define SOFT_USB_REQ_SHIFT		3	/* sys_ck gate for USB host? */
 | 
	
		
			
				|  |  | +#define SOFT_SDW_REQ_SHIFT		2	/* sys_ck gate for Bluetooth? */
 | 
	
		
			
				|  |  | +#define SOFT_COM_REQ_SHIFT		1	/* sys_ck gate for com proc? */
 | 
	
		
			
				|  |  | +#define SOFT_DPLL_REQ_SHIFT		0
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * Omap1 clocks
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct clk ck_ref = {
 | 
	
		
			
				|  |  | +	.name		= "ck_ref",
 | 
	
		
			
				|  |  | +	.ops		= &clkops_null,
 | 
	
		
			
				|  |  | +	.rate		= 12000000,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct clk ck_dpll1 = {
 | 
	
		
			
				|  |  | +	.name		= "ck_dpll1",
 | 
	
		
			
				|  |  | +	.ops		= &clkops_null,
 | 
	
		
			
				|  |  | +	.parent		= &ck_ref,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * FIXME: This clock seems to be necessary but no-one has asked for its
 | 
	
		
			
				|  |  | + * activation.  [ FIX: SoSSI, SSR ]
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +static struct arm_idlect1_clk ck_dpll1out = {
 | 
	
		
			
				|  |  | +	.clk = {
 | 
	
		
			
				|  |  | +		.name		= "ck_dpll1out",
 | 
	
		
			
				|  |  | +		.ops		= &clkops_generic,
 | 
	
		
			
				|  |  | +		.parent		= &ck_dpll1,
 | 
	
		
			
				|  |  | +		.flags		= CLOCK_IDLE_CONTROL | ENABLE_REG_32BIT |
 | 
	
		
			
				|  |  | +				  ENABLE_ON_INIT,
 | 
	
		
			
				|  |  | +		.enable_reg	= OMAP1_IO_ADDRESS(ARM_IDLECT2),
 | 
	
		
			
				|  |  | +		.enable_bit	= EN_CKOUT_ARM,
 | 
	
		
			
				|  |  | +		.recalc		= &followparent_recalc,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.idlect_shift	= IDL_CLKOUT_ARM_SHIFT,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct clk sossi_ck = {
 | 
	
		
			
				|  |  | +	.name		= "ck_sossi",
 | 
	
		
			
				|  |  | +	.ops		= &clkops_generic,
 | 
	
		
			
				|  |  | +	.parent		= &ck_dpll1out.clk,
 | 
	
		
			
				|  |  | +	.flags		= CLOCK_NO_IDLE_PARENT | ENABLE_REG_32BIT,
 | 
	
		
			
				|  |  | +	.enable_reg	= OMAP1_IO_ADDRESS(MOD_CONF_CTRL_1),
 | 
	
		
			
				|  |  | +	.enable_bit	= CONF_MOD_SOSSI_CLK_EN_R,
 | 
	
		
			
				|  |  | +	.recalc		= &omap1_sossi_recalc,
 | 
	
		
			
				|  |  | +	.set_rate	= &omap1_set_sossi_rate,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct clk arm_ck = {
 | 
	
		
			
				|  |  | +	.name		= "arm_ck",
 | 
	
		
			
				|  |  | +	.ops		= &clkops_null,
 | 
	
		
			
				|  |  | +	.parent		= &ck_dpll1,
 | 
	
		
			
				|  |  | +	.rate_offset	= CKCTL_ARMDIV_OFFSET,
 | 
	
		
			
				|  |  | +	.recalc		= &omap1_ckctl_recalc,
 | 
	
		
			
				|  |  | +	.round_rate	= omap1_clk_round_rate_ckctl_arm,
 | 
	
		
			
				|  |  | +	.set_rate	= omap1_clk_set_rate_ckctl_arm,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 |