From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
To: linux-kernel@vger.kernel.org
Cc: michael@amarulasolutions.com, linux-amarula@amarulasolutions.com,
Dario Binacchi <dario.binacchi@amarulasolutions.com>,
Abel Vesa <abelvesa@kernel.org>,
Brian Masney <bmasney+clk@redhat.com>,
Cristian Marussi <cristian.marussi@arm.com>,
Fabio Estevam <festevam@gmail.com>, Frank Li <Frank.Li@nxp.com>,
Jerome Brunet <jbrunet+clk@baylibre.com>,
Peng Fan <peng.fan@nxp.com>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Sascha Hauer <s.hauer@pengutronix.de>,
Sebin Francis <sebin.francis@ti.com>,
Stephen Boyd <sboyd@kernel.org>,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-clk@vger.kernel.org
Subject: [PATCH v14 0/4] Support spread spectrum clocking for i.MX8M PLLs
Date: Fri, 4 Sep 2026 12:06:29 +0200 [thread overview]
Message-ID: <20260904101243.412006-1-dario.binacchi@amarulasolutions.com> (raw)
The series adds support for spread spectrum clocking for i.MX8M{M,N,P}
PLLs (audio, video and DRAM). It has been tested for the video PLL on
boards using i.MX8MN and i.MX8MP.
While at it, it validates the spread spectrum configuration in the clk
core before it reaches the providers, and fixes the i.MX SCMI OEM
extension, which converted the spread to the wrong unit.
Patches 1 and 2 are fixes for 7.3 with Peng's Reviewed-by and do not
depend on the rest of the series, so they can be picked up separately.
Patches 3 and 4 are new material for the next merge window.
Changes in v14:
- Move the fixes first, so that they can be picked up separately from
the new patches.
Changes in v13:
- Add patch "clk: scmi: reject SSC configuration out of the OEM field
range".
- Rename patch "clk: scmi: fix SSC permyriad conversion" to "clk: scmi:
fix SSC spread conversion".
Changes in v12:
- Add patch "clk: scmi: fix SSC permyriad conversion" to fix the
permyriad to percent conversion in clk-scmi-oem.c, reported by
Sashiko AI review.
- Fix issues claimed by Sashiko for patch "clk: imx: pll14xx: support
spread spectrum clock". See the details in the patch changelog.
Changes in v11:
- Add patch "clk: validate spread spectrum configuration" to reject
invalid parameters in the clk core before they reach the providers.
- Fix issues claimed by Sashiko for patch "clk: imx: pll14xx: support
spread spectrum clock". See the details in the patch changelog.
Changes in v10:
- Drop patches 1-22, superseded by the generic spread spectrum clocking
support from Peng Fan, merged in 7.3, so the i.MX8M specific infrastructure
is no longer needed. This patch is now based on the following commits:
- ae794aa6e88d ("dt-bindings: clock: Add spread spectrum definition")
- c86814e70390 ("clk: Introduce clk_hw_set_spread_spectrum")
- a7f16660af39 ("clk: conf: Support assigned-clock-sscs")
- 7d98de6ffdab ("clk: Add KUnit tests for assigned-clock-sscs")
https://lore.kernel.org/all/20260826165611.236321-1-sboyd@kernel.org/
Changes in v9:
- Add 'Reviewed-by' tag of Peng Fan for imx8mn platform patches
- Fix building warning raised by the kernel test robot for patch
v8, 11/18 clk: imx: add support for i.MX8MN anatop clock driver
- Add patches for imx8m{m,p} platforms:
- 23/23 clk: imx8mm: support spread spectrum clock generation
- 22/23 clk: imx: add support for i.MX8MM anatop clock driver
- 21/23 clk: imx8mp: support spread spectrum clock generation
- 20/23 clk: imx8mp: rename ccm_base to base
- 19/23 clk: imx: add support for i.MX8MP anatop clock driver
Changes in v8:
- Drop the patches added in version 7:
- 10/23 dt-bindings: clock: imx8m-clock: add phandle to the anatop
- 11/23 arm64: dts: imx8mm: add phandle to anatop within CCM
- 12/23 arm64: dts: imx8mn: add phandle to anatop within CCM
- 13/23 arm64: dts: imx8mp: add phandle to anatop within CCM
- 14/23 arm64: dts: imx8mq: add phandle to anatop within CCM
Changes in v7:
- Add and manage fsl,anatop property as phandle to the anatop node with
the new patches:
- 10/23 dt-bindings: clock: imx8m-clock: add phandle to the anatop
- 11/23 arm64: dts: imx8mm: add phandle to anatop within CCM
- 12/23 arm64: dts: imx8mn: add phandle to anatop within CCM
- 13/23 arm64: dts: imx8mp: add phandle to anatop within CCM
- 14/23 arm64: dts: imx8mq: add phandle to anatop within CCM
Changes in v6:
- Merge patches:
10/20 dt-bindings: clock: imx8mm: add binding definitions for anatop
11/20 dt-bindings: clock: imx8mn: add binding definitions for anatop
12/20 dt-bindings: clock: imx8mp: add binding definitions for anatop
to
05/20 dt-bindings: clock: imx8m-anatop: define clocks/clock-names
now renamed
05/18 dt-bindings: clock: imx8m-anatop: add oscillators and PLLs
- Split the patch
15/20 dt-bindings-clock-imx8m-clock-support-spread-spectru.patch
into
12/18 dt-bindings: clock: imx8m-clock: add PLLs
16/18 dt-bindings: clock: imx8m-clock: support spread spectrum clocking
Changes in v5:
- Fix compilation errors.
- Separate driver code from dt-bindings
Changes in v4:
- Add dt-bindings for anatop
- Add anatop driver
- Drop fsl,ssc-clocks from spread spectrum dt-bindings
Changes in v3:
- Patches 1/8 has been added in version 3. The dt-bindings have
been moved from fsl,imx8m-anatop.yaml to imx8m-clock.yaml. The
anatop device (fsl,imx8m-anatop.yaml) is indeed more or less a
syscon, so it represents a memory area accessible by ccm
(imx8m-clock.yaml) to setup the PLLs.
- Patches {3,5}/8 have been added in version 3.
- Patches {4,6,8}/8 use ccm device node instead of the anatop one.
Changes in v2:
- Add "allOf:" and place it after "required:" block, like in the
example schema.
- Move the properties definition to the top-level.
- Drop unit types as requested by the "make dt_binding_check" command.
Dario Binacchi (4):
clk: scmi: fix SSC spread conversion
clk: validate spread spectrum configuration
clk: scmi: reject SSC configuration out of the OEM field range
clk: imx: pll14xx: support spread spectrum clock generation
drivers/clk/clk-scmi-oem.c | 27 ++++++-
drivers/clk/clk.c | 14 ++++
drivers/clk/clk_test.c | 12 +--
drivers/clk/imx/clk-pll14xx.c | 103 +++++++++++++++++++++++++
drivers/clk/kunit_clk_assigned_rates.h | 4 +-
5 files changed, 148 insertions(+), 12 deletions(-)
---
base-commit: bc35965f6940a9bf834d54187b6088b8eb09206d
branch: imx-pll14xx-spread-spectrum
--
2.43.0
next reply other threads:[~2026-09-04 10:12 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 10:06 Dario Binacchi [this message]
2026-09-04 10:06 ` [PATCH v14 4/4] clk: imx: pll14xx: support spread spectrum clock generation Dario Binacchi
2026-09-04 12:49 ` Abel Vesa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260904101243.412006-1-dario.binacchi@amarulasolutions.com \
--to=dario.binacchi@amarulasolutions.com \
--cc=Frank.Li@nxp.com \
--cc=abelvesa@kernel.org \
--cc=bmasney+clk@redhat.com \
--cc=cristian.marussi@arm.com \
--cc=festevam@gmail.com \
--cc=imx@lists.linux.dev \
--cc=jbrunet+clk@baylibre.com \
--cc=kernel@pengutronix.de \
--cc=linux-amarula@amarulasolutions.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael@amarulasolutions.com \
--cc=peng.fan@nxp.com \
--cc=s.hauer@pengutronix.de \
--cc=sboyd@kernel.org \
--cc=sebin.francis@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox