> +     if (rx_dly_config & PRG_ETH0_ADJ_ENABLE) {
> +             /* The timing adjustment logic is driven by a separate clock */
> +             ret = meson8b_devm_clk_prepare_enable(dwmac,
> +                                                   dwmac->timing_adj_clk);
> +             if (ret) {
> +                     dev_err(dwmac->dev,
> +                             "Failed to enable the timing-adjustment 
> clock\n");
> +                     return ret;
> +             }
> +     }

Hi Martin

It is a while since i used the clk API. I thought the get_optional()
call returned a NULL pointer if the clock does not exist.
clk_prepare_enable() passed a NULL pointer is a NOP, but it also does
not return an error. So if the clock does not exist, you won't get
this error, the code keeps going, configures the hardware, but it does
not work.

I think you need to check dwmac->timing_adj_clk != NULL here, and
error out if DT has properties which require it.

      Andrew

Reply via email to