[PATCH v2 1/4] clk: Introduce clk_hw_set_spread_spectrum
Geert Uytterhoeven
geert at linux-m68k.org
Thu Feb 13 02:06:01 PST 2025
Hi Peng,
On Wed, 5 Feb 2025 at 10:51, Peng Fan (OSS) <peng.fan at oss.nxp.com> wrote:
> From: Peng Fan <peng.fan at nxp.com>
>
> Add clk_hw_set_spread_spectrum to configure a clock to enable spread
> spectrum feature. set_spread_spectrum ops is added for clk drivers to
> have their own hardware specific implementation.
>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
Thanks for your patch!
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -84,6 +84,28 @@ struct clk_duty {
> unsigned int den;
> };
>
> +/* Aligned with dtschema/schemas/clock/clock.yaml */
> +enum clk_ssc_method {
> + CLK_SSC_CENTER_SPREAD,
> + CLK_SSC_UP_SPREAD,
> + CLK_SSC_DOWN_SPREAD,
> +};
> +
> +/**
> + * struct clk_spread_spectrum - Structure encoding spread spectrum of a clock
> + *
> + * @modfreq: Modulation frequency
> + * @spreadpercent: Modulation percent
E.g. Renesas R-Car V4M also supports 0.5%, 1.5%, and 2.5%.
> + * @method: Modulation method
> + * @enable: Modulation enable or disable
> + */
> +struct clk_spread_spectrum {
> + unsigned int modfreq;
> + unsigned int spreaddepth;
> + enum clk_ssc_method method;
> + bool enable;
Do you envision a use case for having a separate enable flag?
The alternative would be to add an extra enum value above:
CLK_SSC_NO_SPREAD = 0,
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-arm-kernel
mailing list