Message ID | 20250124-clk-ssc-v1-0-2d39f6baf2af@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | clk: Support spread spectrum and use it in clk-scmi | expand |
On Fri, Jan 24, 2025 at 2:19 PM Peng Fan (OSS) <peng.fan@oss.nxp.com> wrote: > > - Introduce clk_set_spread_spectrum to set the parameters for enabling > spread spectrum of a clock. > - Parse 'assigned-clock-sscs' and configure it by default before using the > clock. The pull request for this property is at [1] > This property is parsed before parsing clock rate. > > - Enable this feature for clk-scmi on i.MX95. > This may not the best, since checking machine compatibles. > I am thinking to provide an API scmi_get_vendor_info, then driver > could use it for OEM stuff, such as > if (scmi_get_vendor_info returns NXP_IMX) > ops->set_spread_spectrum = scmi_clk_set_spread_spectrum_imx; > I wonder if your solution is truly generic or merely a generalization of your use case, which seems significantly simpler compared to what happens on the i.MX8M platform, as discussed in thread https://lore.kernel.org/lkml/PAXPR04MB8459537D7D2A49221D0E890D88E32@PAXPR04MB8459.eurprd04.prod.outlook.com/, or on the STM32F platform, where parameters are not written directly to registers but are instead used in calculations involving the parent_rate and the PLL divider, for example. I am the author of the patches that introduced spread spectrum management for the AM33x and STM32Fx platforms, as well as the series, still pending acceptance, for the i.MX8M. From my perspective, this functionality varies significantly from platform to platform, with key differences that must be considered. Thanks and regards, Dario > [1] https://github.com/devicetree-org/dt-schema/pull/154 > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > Peng Fan (3): > clk: Introduce clk_set_spread_spectrum > clk: conf: Support assigned-clock-sscs > clk: scmi: Support spread spectrum > > drivers/clk/clk-conf.c | 68 +++++++++++++++++++++++++++++++++++++++++++ > drivers/clk/clk-scmi.c | 37 +++++++++++++++++++++++ > drivers/clk/clk.c | 39 +++++++++++++++++++++++++ > include/linux/clk-provider.h | 22 ++++++++++++++ > include/linux/clk.h | 22 ++++++++++++++ > include/linux/scmi_protocol.h | 5 ++++ > 6 files changed, 193 insertions(+) > --- > base-commit: 5ffa57f6eecefababb8cbe327222ef171943b183 > change-id: 20250124-clk-ssc-fccd4f60d7e5 > > Best regards, > -- > Peng Fan <peng.fan@nxp.com> >
- Introduce clk_set_spread_spectrum to set the parameters for enabling spread spectrum of a clock. - Parse 'assigned-clock-sscs' and configure it by default before using the clock. The pull request for this property is at [1] This property is parsed before parsing clock rate. - Enable this feature for clk-scmi on i.MX95. This may not the best, since checking machine compatibles. I am thinking to provide an API scmi_get_vendor_info, then driver could use it for OEM stuff, such as if (scmi_get_vendor_info returns NXP_IMX) ops->set_spread_spectrum = scmi_clk_set_spread_spectrum_imx; [1] https://github.com/devicetree-org/dt-schema/pull/154 Signed-off-by: Peng Fan <peng.fan@nxp.com> --- Peng Fan (3): clk: Introduce clk_set_spread_spectrum clk: conf: Support assigned-clock-sscs clk: scmi: Support spread spectrum drivers/clk/clk-conf.c | 68 +++++++++++++++++++++++++++++++++++++++++++ drivers/clk/clk-scmi.c | 37 +++++++++++++++++++++++ drivers/clk/clk.c | 39 +++++++++++++++++++++++++ include/linux/clk-provider.h | 22 ++++++++++++++ include/linux/clk.h | 22 ++++++++++++++ include/linux/scmi_protocol.h | 5 ++++ 6 files changed, 193 insertions(+) --- base-commit: 5ffa57f6eecefababb8cbe327222ef171943b183 change-id: 20250124-clk-ssc-fccd4f60d7e5 Best regards,