1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 * Copyright (c) 2018 BayLibre, SAS.
4 * Author: Jerome Brunet <jbrunet@baylibre.com>
8 #include <linux/clk-provider.h>
9 #include <linux/device.h>
12 static const struct clk_ops meson_clk_no_ops = {};
14 struct clk_hw *meson_clk_hw_register_input(struct device *dev,
19 struct clk *parent_clk = devm_clk_get(dev, of_name);
20 struct clk_init_data init;
21 const char *parent_name;
25 if (IS_ERR(parent_clk))
26 return (struct clk_hw *)parent_clk;
28 hw = devm_kzalloc(dev, sizeof(*hw), GFP_KERNEL);
30 return ERR_PTR(-ENOMEM);
32 parent_name = __clk_get_name(parent_clk);
34 init.ops = &meson_clk_no_ops;
36 init.parent_names = &parent_name;
40 ret = devm_clk_hw_register(dev, hw);
42 return ret ? ERR_PTR(ret) : hw;
44 EXPORT_SYMBOL_GPL(meson_clk_hw_register_input);