[PATCH v1 00/20] ARM: imx: make Ethernet refclock configurable
From: Oleksij Rempel
Date: Fri Jan 13 2023 - 09:35:26 EST
Most of i.MX SoC variants have configurable FEC/Ethernet reference clock
used by RMII specification. This functionality is located in the
general purpose registers (GRPx) and till now was not implemented as
part of SoC clock tree.
With this patch set, we move forward and add this missing functionality
to some of i.MX clk drivers. So, we will be able to configure clock topology
by using devicetree and be able to troubleshoot clock dependencies
by using clk_summary etc.
Currently implemented and tested i.MX6Q, i.MX6DL and i.MX6UL variants.
Oleksij Rempel (20):
clk: imx: add clk-gpr-mux driver
clk: imx6q: add ethernet refclock mux support
ARM: imx6q: skip ethernet refclock reconfiguration if enet_clk_ref is
present
ARM: imx6q: use of_clk_get_by_name() instead of_clk_get() to get ptp
clock
ARM: dts: imx6qdl: use enet_clk_ref instead of enet_out for the FEC
node
ARM: dts: imx6dl-lanmcu: configure ethernet reference clock parent
ARM: dts: imx6dl-alti6p: configure ethernet reference clock parent
ARM: dts: imx6dl-plybas: configure ethernet reference clock parent
ARM: dts: imx6dl-plym2m: configure ethernet reference clock parent
ARM: dts: imx6dl-prtmvt: configure ethernet reference clock parent
ARM: dts: imx6dl-victgo: configure ethernet reference clock parent
ARM: dts: imx6q-prtwd2: configure ethernet reference clock parent
ARM: dts: imx6qdl-skov-cpu: configure ethernet reference clock parent
ARM: dts: imx6dl-eckelmann-ci4x10: configure ethernet reference clock
parent
clk: imx: add imx_obtain_fixed_of_clock()
clk: imx6ul: fix enet1 gate configuration
clk: imx6ul: add ethernet refclock mux support
ARM: dts: imx6ul: set enet_clk_ref to CLK_ENETx_REF_SEL
ARM: mach-imx: imx6ul: remove not optional ethernet refclock overwrite
ARM: dts: imx6ul-prti6g: configure ethernet reference clock parent
arch/arm/boot/dts/imx6dl-alti6p.dts | 12 +-
arch/arm/boot/dts/imx6dl-eckelmann-ci4x10.dts | 13 +-
arch/arm/boot/dts/imx6dl-lanmcu.dts | 12 +-
arch/arm/boot/dts/imx6dl-plybas.dts | 12 +-
arch/arm/boot/dts/imx6dl-plym2m.dts | 12 +-
arch/arm/boot/dts/imx6dl-prtmvt.dts | 11 +-
arch/arm/boot/dts/imx6dl-victgo.dts | 12 +-
arch/arm/boot/dts/imx6q-prtwd2.dts | 17 ++-
arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi | 12 +-
arch/arm/boot/dts/imx6qdl.dtsi | 4 +-
arch/arm/boot/dts/imx6ul-prti6g.dts | 14 ++-
arch/arm/boot/dts/imx6ul.dtsi | 10 +-
arch/arm/mach-imx/mach-imx6q.c | 12 +-
arch/arm/mach-imx/mach-imx6ul.c | 20 ---
drivers/clk/imx/Makefile | 1 +
drivers/clk/imx/clk-gpr-mux.c | 119 ++++++++++++++++++
drivers/clk/imx/clk-imx6q.c | 13 ++
drivers/clk/imx/clk-imx6ul.c | 33 ++++-
drivers/clk/imx/clk.c | 14 +++
drivers/clk/imx/clk.h | 8 ++
include/dt-bindings/clock/imx6qdl-clock.h | 4 +-
include/dt-bindings/clock/imx6ul-clock.h | 7 +-
include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 6 +-
23 files changed, 297 insertions(+), 81 deletions(-)
create mode 100644 drivers/clk/imx/clk-gpr-mux.c
--
2.30.2