[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241227165719.3902388-1-dario.binacchi@amarulasolutions.com>
Date: Fri, 27 Dec 2024 17:56:03 +0100
From: Dario Binacchi <dario.binacchi@...rulasolutions.com>
To: linux-kernel@...r.kernel.org
Cc: linux-amarula@...rulasolutions.com,
Dario Binacchi <dario.binacchi@...rulasolutions.com>,
Abel Vesa <abelvesa@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Fabio Estevam <festevam@...il.com>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Peng Fan <peng.fan@....com>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Rob Herring <robh@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Shawn Guo <shawnguo@...nel.org>,
Stephen Boyd <sboyd@...nel.org>,
devicetree@...r.kernel.org,
imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org,
linux-clk@...r.kernel.org
Subject: [PATCH v7 00/23] Support spread spectrum clocking for i.MX8N PLLs
The series adds support for spread spectrum clocking for i.MX8MN
PLLs (audio, video and DRAM). It has been tested for the video PLL on
a board using i.MX8MN.
The patches added in version 4, such as the dt-bindings and the driver
for anatop, were inspired by the extensive email exchange from version 3:
https://lore.kernel.org/imx/20241106090549.3684963-1-dario.binacchi@amarulasolutions.com/
The series added spectrum spread support for the imx8mn platform only,
but in case it was merged, confirming that the directives and suggestions
made by the maintainers were correctly understood and implemented, I will
extend this support to the imx8mm and imx8mp platforms as well.
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 (23):
dt-bindings: clock: imx8mm: add VIDEO_PLL clocks
clk: imx8mm: rename video_pll1 to video_pll
dt-bindings: clock: imx8mp: add VIDEO_PLL clocks
clk: imx8mp: rename video_pll1 to video_pll
dt-bindings: clock: imx8m-anatop: add oscillators and PLLs
arm64: dts: imx8mm: add anatop clocks
arm64: dts: imx8mn: add anatop clocks
arm64: dts: imx8mp: add anatop clocks
arm64: dts: imx8mq: add anatop clocks
dt-bindings: clock: imx8m-clock: add phandle to the anatop
arm64: dts: imx8mm: add phandle to anatop within CCM
arm64: dts: imx8mn: add phandle to anatop within CCM
arm64: dts: imx8mp: add phandle to anatop within CCM
arm64: dts: imx8mq: add phandle to anatop within CCM
clk: imx: add hw API imx_anatop_get_clk_hw
clk: imx: add support for i.MX8MN anatop clock driver
dt-bindings: clock: imx8m-clock: add PLLs
arm64: dts: imx8mm: add PLLs to clock controller module (CCM)
arm64: dts: imx8mn: add PLLs to clock controller module (CCM)
arm64: dts: imx8mp: add PLLs to clock controller module (CCM)
dt-bindings: clock: imx8m-clock: support spread spectrum clocking
clk: imx: pll14xx: support spread spectrum clock generation
clk: imx8mn: support spread spectrum clock generation
.../bindings/clock/fsl,imx8m-anatop.yaml | 53 +++-
.../bindings/clock/imx8m-clock.yaml | 84 +++++-
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 12 +-
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 12 +-
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 12 +-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 3 +
drivers/clk/imx/Makefile | 2 +-
drivers/clk/imx/clk-imx8mm.c | 102 +++----
drivers/clk/imx/clk-imx8mn-anatop.c | 283 ++++++++++++++++++
drivers/clk/imx/clk-imx8mn.c | 199 ++++++------
drivers/clk/imx/clk-imx8mp.c | 118 ++++----
drivers/clk/imx/clk-pll14xx.c | 134 +++++++++
drivers/clk/imx/clk.c | 15 +
drivers/clk/imx/clk.h | 18 ++
include/dt-bindings/clock/imx8mm-clock.h | 76 ++++-
include/dt-bindings/clock/imx8mn-clock.h | 64 ++++
include/dt-bindings/clock/imx8mp-clock.h | 80 ++++-
17 files changed, 1032 insertions(+), 235 deletions(-)
create mode 100644 drivers/clk/imx/clk-imx8mn-anatop.c
--
2.43.0
Powered by blists - more mailing lists