]> Git Repo - linux.git/blob - drivers/clk/meson/clk-input.c
Merge tag 'lkdtm-next' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux...
[linux.git] / drivers / clk / meson / clk-input.c
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3  * Copyright (c) 2018 BayLibre, SAS.
4  * Author: Jerome Brunet <[email protected]>
5  */
6
7 #include <linux/clk.h>
8 #include <linux/clk-provider.h>
9 #include <linux/device.h>
10 #include <linux/module.h>
11 #include "clk-input.h"
12
13 static const struct clk_ops meson_clk_no_ops = {};
14
15 struct clk_hw *meson_clk_hw_register_input(struct device *dev,
16                                            const char *of_name,
17                                            const char *clk_name,
18                                            unsigned long flags)
19 {
20         struct clk *parent_clk = devm_clk_get(dev, of_name);
21         struct clk_init_data init;
22         const char *parent_name;
23         struct clk_hw *hw;
24         int ret;
25
26         if (IS_ERR(parent_clk))
27                 return (struct clk_hw *)parent_clk;
28
29         hw = devm_kzalloc(dev, sizeof(*hw), GFP_KERNEL);
30         if (!hw)
31                 return ERR_PTR(-ENOMEM);
32
33         parent_name = __clk_get_name(parent_clk);
34         init.name = clk_name;
35         init.ops = &meson_clk_no_ops;
36         init.flags = flags;
37         init.parent_names = &parent_name;
38         init.num_parents = 1;
39         hw->init = &init;
40
41         ret = devm_clk_hw_register(dev, hw);
42
43         return ret ? ERR_PTR(ret) : hw;
44 }
45 EXPORT_SYMBOL_GPL(meson_clk_hw_register_input);
46
47 MODULE_DESCRIPTION("Amlogic clock input helper");
48 MODULE_AUTHOR("Jerome Brunet <[email protected]>");
49 MODULE_LICENSE("GPL v2");
This page took 0.029745 seconds and 4 git commands to generate.