[PATCH v5 09/11] clk: sunxi-ng: div: Support finding closest rate

Jernej Škrabec jernej.skrabec at gmail.com
Sun Aug 6 06:42:34 PDT 2023


Dne nedelja, 06. avgust 2023 ob 15:06:54 CEST je Frank Oltmanns napisal(a):
> Add initalization macros for divisor clocks with mux
> (SUNXI_CCU_M_WITH_MUX) to support finding the closest rate. This clock
> type requires the appropriate flags to be set in the .common structure
> (for the mux part of the clock) and the .div part.
> 
> Acked-by: Maxime Ripard <mripard at kernel.org>
> Signed-off-by: Frank Oltmanns <frank at oltmanns.dev>

Reviewed-by: Jernej Skrabec <jernej.skrabec at gmail.com>

Best regards,
Jernej

> ---
>  drivers/clk/sunxi-ng/ccu_div.h | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/drivers/clk/sunxi-ng/ccu_div.h b/drivers/clk/sunxi-ng/ccu_div.h
> index 948e2b0c0c3b..90d49ee8e0cc 100644
> --- a/drivers/clk/sunxi-ng/ccu_div.h
> +++ b/drivers/clk/sunxi-ng/ccu_div.h
> @@ -143,6 +143,26 @@ struct ccu_div {
>  		},					
		\
>  	}
> 
> +#define SUNXI_CCU_M_WITH_MUX_TABLE_GATE_CLOSEST(_struct, _name,		
\
> +						_parents, 
_table,	\
> +						_reg,		
	\
> +						_mshift, 
_mwidth,	\
> +						_muxshift, 
_muxwidth,	\
> +						_gate, 
_flags)		\
> +	struct ccu_div _struct = {					
\
> +		.enable	= _gate,				
	\
> +		.div	= _SUNXI_CCU_DIV_FLAGS(_mshift, _mwidth, 
CLK_DIVIDER_ROUND_CLOSEST),
> \ +		.mux	= _SUNXI_CCU_MUX_TABLE(_muxshift, _muxwidth, 
_table), \
> +		.common	= {					
	\
> +			.reg		= _reg,			
	\
> +			.hw.init	= CLK_HW_INIT_PARENTS(_name,	
\
> +							      
_parents, \
> +							      
&ccu_div_ops, \
> +							      
_flags),	\
> +			.features	= CCU_FEATURE_CLOSEST_RATE,	
\
> +		},						
	\
> +	}
> +
>  #define SUNXI_CCU_M_WITH_MUX_GATE(_struct, _name, _parents, _reg,	\
>  				  _mshift, _mwidth, _muxshift, 
_muxwidth, \
>  				  _gate, _flags)		
	\
> @@ -152,6 +172,16 @@ struct ccu_div {
>  					_muxshift, _muxwidth,	
	\
>  					_gate, _flags)
> 
> +#define SUNXI_CCU_M_WITH_MUX_GATE_CLOSEST(_struct, _name, _parents,	
\
> +					  _reg, _mshift, 
_mwidth,	\
> +					  _muxshift, _muxwidth,	
	\
> +					  _gate, _flags)	
	\
> +	SUNXI_CCU_M_WITH_MUX_TABLE_GATE_CLOSEST(_struct, _name,		
\
> +						_parents, 
NULL,		\
> +						_reg, 
_mshift, _mwidth,	\
> +						_muxshift, 
_muxwidth,	\
> +						_gate, 
_flags)
> +
>  #define SUNXI_CCU_M_WITH_MUX(_struct, _name, _parents, _reg,		
\
>  			     _mshift, _mwidth, _muxshift, _muxwidth,	
\
>  			     _flags)				
	\







More information about the linux-arm-kernel mailing list