1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 * Copyright (c) 2018 BayLibre, SAS.
8 #include <linux/clk-provider.h>
9 #include <linux/device.h>
10 #include <linux/module.h>
11 #include "clk-input.h"
13 static const struct clk_ops meson_clk_no_ops = {};
15 struct clk_hw *meson_clk_hw_register_input(struct device *dev,
20 struct clk *parent_clk = devm_clk_get(dev, of_name);
21 struct clk_init_data init;
22 const char *parent_name;
26 if (IS_ERR(parent_clk))
27 return (struct clk_hw *)parent_clk;
29 hw = devm_kzalloc(dev, sizeof(*hw), GFP_KERNEL);
31 return ERR_PTR(-ENOMEM);
33 parent_name = __clk_get_name(parent_clk);
35 init.ops = &meson_clk_no_ops;
37 init.parent_names = &parent_name;
41 ret = devm_clk_hw_register(dev, hw);
43 return ret ? ERR_PTR(ret) : hw;
45 EXPORT_SYMBOL_GPL(meson_clk_hw_register_input);
47 MODULE_DESCRIPTION("Amlogic clock input helper");
49 MODULE_LICENSE("GPL v2");