[RFC PATCH v2 00/11] clk: imx8mn: setup clocks from the device tree

From: Dario Binacchi
Date: Sun Jan 01 2023 - 12:57:59 EST


The idea for this series was born back from Dublin (ELCE 2022) after
having attended the talk entitled "Updating and Modernizing Clock
Drivers" held by Chen-Yu Tsai and the availability of a board with
imx8mn SOC.

This series aims to setup all imx8mn's clocks from the device tree and
remove the legacy setup code with hardwired parameters.

I am well aware that the series lacks patches for the DT bindings. The
effort up to this point has been important and so I thought I'd ask for
feedback from the community before proceeding to implement them. If it
is positive I will add the DT binding patches starting from version 2.

The series has been tested on the BSH SystemMaster (SMM) S2 board:
https://www.apertis.org/reference_hardware/imx8mn_bsh_smm_s2pro_setup


Changes in v2:
- Fix compiler warnings reported by kernel test robot.

Dario Binacchi (11):
clk: imx: add structure to extend register accesses
clk: imx: add clk_hw based API imx_get_clk_hw_from_dt()
clk: imx8mn: add gate driver
clk: imx8mn: add mux driver
clk: imx8mn: add divider driver
clk: imx: pll14xx: add device tree support
clk: imx: composite-8m: add device tree support
clk: imx: gate2: add device tree support
clk: imx: cpu: add device tree support
arm64: dts: imx8mn: add dumy clock
arm64: dts: imx8mn: add clocks description

.../boot/dts/freescale/imx8mn-clocks.dtsi | 1885 +++++++++++++++++
arch/arm64/boot/dts/freescale/imx8mn.dtsi | 51 +-
drivers/clk/imx/Makefile | 3 +
drivers/clk/imx/clk-composite-8m.c | 84 +
drivers/clk/imx/clk-cpu.c | 54 +
drivers/clk/imx/clk-divider.c | 235 ++
drivers/clk/imx/clk-gate.c | 156 ++
drivers/clk/imx/clk-gate2.c | 86 +
drivers/clk/imx/clk-imx8mn.c | 716 ++-----
drivers/clk/imx/clk-mux.c | 258 +++
drivers/clk/imx/clk-pll14xx.c | 220 +-
drivers/clk/imx/clk.c | 21 +
drivers/clk/imx/clk.h | 15 +
13 files changed, 3177 insertions(+), 607 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-clocks.dtsi
create mode 100644 drivers/clk/imx/clk-divider.c
create mode 100644 drivers/clk/imx/clk-gate.c
create mode 100644 drivers/clk/imx/clk-mux.c

--
2.32.0