Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13e91e45 authored by Maxime Ripard's avatar Maxime Ripard
Browse files

clk: sunxi-ng: mux: Add mux table macro



Add a new macro to declare muxes based on a table and a gate.

Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: default avatarChen-Yu Tsai <wens@csie.org>
parent 87ba9e59
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -43,9 +43,12 @@ struct ccu_mux {
	struct ccu_common	common;
};

#define SUNXI_CCU_MUX(_struct, _name, _parents, _reg, _shift, _width, _flags) \
#define SUNXI_CCU_MUX_TABLE_WITH_GATE(_struct, _name, _parents, _table,	\
				     _reg, _shift, _width, _gate,	\
				     _flags)				\
	struct ccu_mux _struct = {					\
		.mux	= _SUNXI_CCU_MUX(_shift, _width),		\
		.enable	= _gate,					\
		.mux	= _SUNXI_CCU_MUX_TABLE(_shift, _width, _table),	\
		.common	= {						\
			.reg		= _reg,				\
			.hw.init	= CLK_HW_INIT_PARENTS(_name,	\
@@ -57,17 +60,14 @@ struct ccu_mux {

#define SUNXI_CCU_MUX_WITH_GATE(_struct, _name, _parents, _reg,		\
				_shift, _width, _gate, _flags)		\
	struct ccu_mux _struct = {					\
		.enable	= _gate,					\
		.mux	= _SUNXI_CCU_MUX(_shift, _width),		\
		.common	= {						\
			.reg		= _reg,				\
			.hw.init	= CLK_HW_INIT_PARENTS(_name,	\
							      _parents, \
							      &ccu_mux_ops, \
							      _flags),	\
		}							\
	}
	SUNXI_CCU_MUX_TABLE_WITH_GATE(_struct, _name, _parents, NULL,	\
				      _reg, _shift, _width, _gate,	\
				      _flags)

#define SUNXI_CCU_MUX(_struct, _name, _parents, _reg, _shift, _width,	\
		      _flags)						\
	SUNXI_CCU_MUX_TABLE_WITH_GATE(_struct, _name, _parents, NULL,	\
				      _reg, _shift, _width, 0, _flags)

static inline struct ccu_mux *hw_to_ccu_mux(struct clk_hw *hw)
{