changes v3: - add Reviewed-by: Abel Vesa <abel.vesa@xxxxxxxxxx> - rebase on top of abelvesa/for-next changes v2: - remove "ARM: imx6q: use of_clk_get_by_name() instead of_clk_get() to get ptp clock" patch - fix build warnings - add "Acked-by: Lee Jones <lee@xxxxxxxxxx>" - reword some commits as suggested by Fabio Most of i.MX SoC variants have configurable FEC/Ethernet reference lock 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 opology 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 (19): 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: 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 | 10 +- 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, 296 insertions(+), 80 deletions(-) create mode 100644 drivers/clk/imx/clk-gpr-mux.c -- 2.30.2