[PATCH v4 0/5] clk: Support spread spectrum and use it in clk-scmi
From: Peng Fan <peng.fan@nxp.com>
Date: 2025-09-15 08:30:14
Also in:
arm-scmi, linux-clk, linux-devicetree, lkml
Since the assigned-clock-sscs property [1] has been accepted into the device tree schema, we can now support it in the Linux clock driver. Therefore, I’ve picked up the previously submitted work [2] titled “clk: Support spread spectrum and use it in clk-pll144x and clk-scmi.” As more than six months have passed since [2] was posted, I’m treating this patchset as a new submission rather than a v3. - 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. This property is parsed before parsing clock rate. - Enable this feature for clk-scmi on i.MX95. Because SCMI spec will not include spread spectrum as a standard extension, we still need to use NXP i.MX OEM extension. [1] https://github.com/devicetree-org/dt-schema/pull/154 [2] https://lore.kernel.org/all/20250205-clk-ssc-v2-0-fa73083caa92@nxp.com/ (local) Signed-off-by: Peng Fan <peng.fan@nxp.com> --- Changes in v4: - Add R-b for patch 1 from Brian - Drop unecessary change in patch 4 Per Brian - Link to v3: https://lore.kernel.org/r/20250912-clk-ssc-version1-v3-0-fd1e07476ba1@nxp.com (local) Changes in v3: - New patch 1 for dt-bindings per comment from Brian https://lore.kernel.org/all/aLeEFzXkPog_dt2B@x1/ (local) This might not be good to add a new dt-binding file in v3. But this is quite a simple file that just has four macros to encode modulation method. So hope this is fine for DT maintainers. - Add Brain's R-b for patch 2 - New patch 3 to add Kunit test per Brain. Since Brain helped draft part of the code, I added Co-developed-by tag from Brain. - Link to v2: https://lore.kernel.org/r/20250901-clk-ssc-version1-v2-0-1d0a486dffe6@nxp.com (local) Changes in v2: - Simplify the code in patch 2 per Dan Carpenter and Brian Masney - Rebased to next-20250829 - Link to v1: https://lore.kernel.org/r/20250812-clk-ssc-version1-v1-0-cef60f20d770@nxp.com (local) --- Peng Fan (5): dt-bindings: clock: Add spread spectrum definition clk: Introduce clk_hw_set_spread_spectrum clk: conf: Support assigned-clock-sscs clk: Add KUnit tests for assigned-clock-sscs clk: scmi: Support Spread Spectrum for NXP i.MX95 drivers/clk/Makefile | 6 + drivers/clk/clk-conf.c | 69 ++++++++++++ drivers/clk/clk-scmi.c | 64 ++++++++++- drivers/clk/clk.c | 26 +++++ drivers/clk/clk_test.c | 121 ++++++++++++++++++++- drivers/clk/kunit_clk_assigned_rates.h | 10 ++ drivers/clk/kunit_clk_assigned_rates_multiple.dtso | 6 + ...kunit_clk_assigned_rates_multiple_consumer.dtso | 6 + drivers/clk/kunit_clk_assigned_rates_one.dtso | 3 + .../clk/kunit_clk_assigned_rates_one_consumer.dtso | 3 + .../clk/kunit_clk_assigned_rates_u64_multiple.dtso | 6 + ...t_clk_assigned_rates_u64_multiple_consumer.dtso | 6 + drivers/clk/kunit_clk_assigned_rates_u64_one.dtso | 3 + .../kunit_clk_assigned_rates_u64_one_consumer.dtso | 3 + drivers/clk/kunit_clk_assigned_sscs_null.dtso | 16 +++ .../clk/kunit_clk_assigned_sscs_null_consumer.dtso | 20 ++++ drivers/clk/kunit_clk_assigned_sscs_without.dtso | 15 +++ .../kunit_clk_assigned_sscs_without_consumer.dtso | 19 ++++ drivers/clk/kunit_clk_assigned_sscs_zero.dtso | 12 ++ .../clk/kunit_clk_assigned_sscs_zero_consumer.dtso | 16 +++ include/dt-bindings/clock/clock.h | 14 +++ include/linux/clk-provider.h | 22 ++++ include/linux/scmi_protocol.h | 5 + 23 files changed, 464 insertions(+), 7 deletions(-) --- base-commit: 8941e75c0f122fdd76dc54ed45c4ce917587e006 change-id: 20250812-clk-ssc-version1-acf6f6efbd96 Best regards, -- Peng Fan [off-list ref]