Lack of clock can be ok at times and thus the clk API accepts NULL arguments and treats them as no-op. Linux provides a clk_get_optional function to simplify code with such optional code, so let's provide an equivalent for barebox. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- include/linux/clk.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/linux/clk.h b/include/linux/clk.h index 8509d5ece9d5..82022e78e39d 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -932,4 +932,23 @@ static inline void clk_bulk_disable(int num_clks, #endif +/** + * clk_get_optional - lookup and obtain a reference to an optional clock + * producer. + * @dev: device for clock "consumer" + * @id: clock consumer ID + * + * Behaves the same as clk_get() except where there is no clock producer. In + * this case, instead of returning -ENOENT, the function returns NULL. + */ +static inline struct clk *clk_get_optional(struct device *dev, const char *id) +{ + struct clk *clk = clk_get(dev, id); + + if (clk == ERR_PTR(-ENOENT)) + return NULL; + + return clk; +} + #endif -- 2.39.2