diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2012-05-25 15:21:43 +0900 | 
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2012-05-25 15:21:43 +0900 | 
| commit | 1111cc1e8080b5ff46f5b945acb2f99d6176b2d1 (patch) | |
| tree | 0a8333a7f46236e53ce3f520ceb35b7dd8cfe76f /include/linux/sh_clk.h | |
| parent | a60977a51333a8108f0574aa26094d66b7fedf34 (diff) | |
| download | olio-linux-3.10-1111cc1e8080b5ff46f5b945acb2f99d6176b2d1.tar.xz olio-linux-3.10-1111cc1e8080b5ff46f5b945acb2f99d6176b2d1.zip  | |
sh: clkfwk: Introduce a div_mask for variable div types.
This plugs in a div_mask for the clock and sets it up for the existing
div6/4 cases. This will make it possible to support other div types, as
well as share more div6/4 infrastructure.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include/linux/sh_clk.h')
| -rw-r--r-- | include/linux/sh_clk.h | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/sh_clk.h b/include/linux/sh_clk.h index 706b803df7b..d540b815317 100644 --- a/include/linux/sh_clk.h +++ b/include/linux/sh_clk.h @@ -30,6 +30,10 @@ struct sh_clk_ops {  	long (*round_rate)(struct clk *clk, unsigned long rate);  }; +#define SH_CLK_DIV_MSK(div)	((1 << (div)) - 1) +#define SH_CLK_DIV4_MSK		SH_CLK_DIV_MSK(4) +#define SH_CLK_DIV6_MSK		SH_CLK_DIV_MSK(6) +  struct clk {  	struct list_head	node;  	struct clk		*parent; @@ -51,6 +55,7 @@ struct clk {  	unsigned int		enable_bit;  	void __iomem		*mapped_reg; +	unsigned int		div_mask;  	unsigned long		arch_flags;  	void			*priv;  	struct clk_mapping	*mapping; @@ -145,6 +150,7 @@ static inline int __deprecated sh_clk_mstp32_register(struct clk *clks, int nr)  	.enable_reg = (void __iomem *)_reg,			\  	.enable_bit = _shift,					\  	.arch_flags = _div_bitmap,				\ +	.div_mask = SH_CLK_DIV4_MSK,				\  	.flags = _flags,					\  } @@ -167,6 +173,7 @@ int sh_clk_div4_reparent_register(struct clk *clks, int nr,  {								\  	.enable_reg = (void __iomem *)_reg,			\  	.flags = _flags,					\ +	.div_mask = SH_CLK_DIV6_MSK,				\  	.parent_table = _parents,				\  	.parent_num = _num_parents,				\  	.src_shift = _src_shift,				\ @@ -177,6 +184,7 @@ int sh_clk_div4_reparent_register(struct clk *clks, int nr,  {								\  	.parent		= _parent,				\  	.enable_reg	= (void __iomem *)_reg,			\ +	.div_mask	= SH_CLK_DIV6_MSK,			\  	.flags		= _flags,				\  }  |