diff options
Diffstat (limited to 'drivers/clk/tegra/clk.h')
| -rw-r--r-- | drivers/clk/tegra/clk.h | 27 | 
1 files changed, 19 insertions, 8 deletions
| diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h index 0744731c622..a09d7dcaf18 100644 --- a/drivers/clk/tegra/clk.h +++ b/drivers/clk/tegra/clk.h @@ -355,15 +355,16 @@ struct clk *tegra_clk_register_periph_nodiv(const char *name,  		struct tegra_clk_periph *periph, void __iomem *clk_base,  		u32 offset); -#define TEGRA_CLK_PERIPH(_mux_shift, _mux_width, _mux_flags,		\ +#define TEGRA_CLK_PERIPH(_mux_shift, _mux_mask, _mux_flags,		\  			 _div_shift, _div_width, _div_frac_width,	\  			 _div_flags, _clk_num, _enb_refcnt, _regs,	\ -			 _gate_flags)					\ +			 _gate_flags, _table)				\  	{								\  		.mux = {						\  			.flags = _mux_flags,				\  			.shift = _mux_shift,				\ -			.width = _mux_width,				\ +			.mask = _mux_mask,				\ +			.table = _table,				\  		},							\  		.divider = {						\  			.flags = _div_flags,				\ @@ -393,26 +394,36 @@ struct tegra_periph_init_data {  	const char *dev_id;  }; -#define TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parent_names, _offset, \ -			_mux_shift, _mux_width, _mux_flags, _div_shift,	\ +#define TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parent_names, _offset,\ +			_mux_shift, _mux_mask, _mux_flags, _div_shift,	\  			_div_width, _div_frac_width, _div_flags, _regs,	\ -			_clk_num, _enb_refcnt, _gate_flags, _clk_id)	\ +			_clk_num, _enb_refcnt, _gate_flags, _clk_id, _table) \  	{								\  		.name = _name,						\  		.clk_id = _clk_id,					\  		.parent_names = _parent_names,				\  		.num_parents = ARRAY_SIZE(_parent_names),		\ -		.periph = TEGRA_CLK_PERIPH(_mux_shift, _mux_width,	\ +		.periph = TEGRA_CLK_PERIPH(_mux_shift, _mux_mask,	\  					   _mux_flags, _div_shift,	\  					   _div_width, _div_frac_width,	\  					   _div_flags, _clk_num,	\  					   _enb_refcnt, _regs,		\ -					   _gate_flags),		\ +					   _gate_flags, _table),	\  		.offset = _offset,					\  		.con_id = _con_id,					\  		.dev_id = _dev_id,					\  	} +#define TEGRA_INIT_DATA(_name, _con_id, _dev_id, _parent_names, _offset,\ +			_mux_shift, _mux_width, _mux_flags, _div_shift,	\ +			_div_width, _div_frac_width, _div_flags, _regs,	\ +			_clk_num, _enb_refcnt, _gate_flags, _clk_id)	\ +	TEGRA_INIT_DATA_TABLE(_name, _con_id, _dev_id, _parent_names, _offset,\ +			_mux_shift, BIT(_mux_width) - 1, _mux_flags,	\ +			_div_shift, _div_width, _div_frac_width, _div_flags, \ +			_regs, _clk_num, _enb_refcnt, _gate_flags, _clk_id,\ +			NULL) +  /**   * struct clk_super_mux - super clock   * |