i.MX clocks changes for 6.3

- Free the imx_uart_clocks even if imx_register_uart_clocks returns early.
- Get the stdout clocks count from device tree.
- Drop the clock count argument from imx_register_uart_clocks.
- Keep the uart clocks on i.MX93 for when earlycon is used.
- Fix SPDX comment in i.MX6SLL clocks bindings header.
- Drop some unnecessary spaces from i.MX8ULP clocks bindings header.
- Add a new clk-gpr-mux clock type and use it on i.MX6Q to add ENET ref
  clocks.
- Add the imx_obtain_fixed_of_clock for allowing to add a clock that is
  not configured via devicetree.
- Fix the ENET1 gate configuration for i.MX6UL according to the
  reference manual.
- Add ENET refclock mux support for i.MX6UL.
clk: imx6ul: add ethernet refclock mux support

Add ethernet refclock mux support and set it to internal clock by
default. This configuration will not affect existing boards.

clock tree before this patch:
fec1 <- enet1_ref_125m (gate) <- enet1_ref (divider) <-,
                                                       |- pll6_enet
fec2 <- enet2_ref_125m (gate) <- enet2_ref (divider) <-ยด

after this patch:
fec1 <- enet1_ref_sel(mux) <- enet1_ref_125m (gate) <- ...
               `--<> enet1_ref_pad                      |- pll6_enet
fec2 <- enet2_ref_sel(mux) <- enet2_ref_125m (gate) <- ...
               `--<> enet2_ref_pad

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Acked-by: Lee Jones <lee@kernel.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20230131084642.709385-17-o.rempel@pengutronix.de
3 files changed