2 * Hisilicon Hi3620 clock gate driver
4 * Copyright (c) 2012-2013 Hisilicon Limited.
5 * Copyright (c) 2012-2013 Linaro Limited.
7 * Author: Haojian Zhuang <haojian.zhuang@linaro.org>
8 * Xin Li <li.xin@linaro.org>
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License along
21 * with this program; if not, write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
29 #include <linux/clk-provider.h>
31 #include <linux/spinlock.h>
33 struct hisi_fixed_rate_clock {
36 const char *parent_name;
38 unsigned long fixed_rate;
41 struct hisi_fixed_factor_clock {
44 const char *parent_name;
50 struct hisi_mux_clock {
53 const char **parent_names;
63 struct hisi_divider_clock {
66 const char *parent_name;
72 struct clk_div_table *table;
76 struct hisi_gate_clock {
79 const char *parent_name;
87 struct clk *hisi_register_clkgate_sep(struct device *, const char *,
88 const char *, unsigned long,
92 void __init hisi_clk_init(struct device_node *, int);
93 void __init hisi_clk_register_fixed_rate(struct hisi_fixed_rate_clock *,
95 void __init hisi_clk_register_fixed_factor(struct hisi_fixed_factor_clock *,
97 void __init hisi_clk_register_mux(struct hisi_mux_clock *, int,
99 void __init hisi_clk_register_divider(struct hisi_divider_clock *,
100 int, void __iomem *);
101 void __init hisi_clk_register_gate_sep(struct hisi_gate_clock *,
102 int, void __iomem *);
103 #endif /* __HISI_CLK_H */