[PATCH v11 0/6] clk: Support spread spectrum and use it in clk-scmi
"Peng Fan (OSS)" <[email protected]>
| Newsgroups | org.kernel.vger.linux-clk,org.infradead.lists.linux-arm-kernel,org.kernel.vger.arm-scmi,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Changes in v11: - Address "driver fails to link when compiled as a module" reported by sashiko-bot 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/[email protected]/ Signed-off-by: Peng Fan <[email protected]> Changes in v11: - Address "driver fails to link when compiled as a module" reported by sashiko-bot Changes in v10: - For patch 4: per Stephen's comments, write a new testsuite, not modifying rate tests. Updated commit log, and dropped the R-b tag. - Rebased to next-20260609 - Link to v9: https://lore.kernel.org/linux-clk/[email protected]/ Changes in v9: - Rebased to next-20260311 - Fix kunit test by setting return value to 0 when there is no assigned-clocks in patch 3 - Link to v8: https://lore.kernel.org/r/[email protected] Changes in v8: - Add R-b from Cristian for patch 5 and patch 6 - Add comment for scmi_clk_oem_info in patch 6 - Rebased to next-20260227 - Link to v7: https://lore.kernel.org/r/[email protected] Changes in v7: - Add R-b from Sebin - Drop __free usage per comment from Krzysztof in patch 3 - Link to v6: https://lore.kernel.org/linux-clk/[email protected]/ Changes in v6: - Add kunit build warning - Update OEM string comparation per Sebin - Link to v5: https://lore.kernel.org/linux-clk/[email protected]/ Changes in v5: - Per Stephen, export clk_hw_set_spread_spectrum, use enum for method, add const for set_spread_spectrum and rename clk_ss/conf to ss_conf. - Per Sebin, Cristian, Sudeep, I added clk-scmi-oem.c to support vendor 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/[email protected] Changes in v3: - New patch 1 for dt-bindings per comment from Brian https://lore.kernel.org/all/aLeEFzXkPog_dt2B@x1/ 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/[email protected] 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/[email protected] --- Peng Fan (6): 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: Introduce common header for SCMI clock interface clk: scmi: Add i.MX95 OEM extension support for SCMI clock driver drivers/clk/Makefile | 13 +- drivers/clk/clk-conf.c | 76 ++++++++ drivers/clk/clk-scmi-oem.c | 108 +++++++++++ drivers/clk/clk-scmi.c | 44 ++--- drivers/clk/clk-scmi.h | 51 ++++++ drivers/clk/clk.c | 27 +++ drivers/clk/clk_test.c | 203 ++++++++++++++++++++- drivers/clk/kunit_clk_assigned_rates.h | 10 + .../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_multiple.dtso | 20 ++ .../kunit_clk_assigned_sscs_multiple_consumer.dtso | 24 +++ drivers/clk/kunit_clk_assigned_sscs_null.dtso | 16 ++ .../clk/kunit_clk_assigned_sscs_null_consumer.dtso | 20 ++ drivers/clk/kunit_clk_assigned_sscs_one.dtso | 16 ++ .../clk/kunit_clk_assigned_sscs_one_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 | 31 ++++ 24 files changed, 741 insertions(+), 32 deletions(-) --- base-commit: 4477a78374a57c3809b172ad30cceabda48c47c6 change-id: 20260817-clk-v11-ba21b1cdfa39 Best regards, -- Peng Fan <[email protected]>