1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Toshiba Visconti clock controller
5 * Copyright (c) 2021 TOSHIBA CORPORATION
6 * Copyright (c) 2021 Toshiba Electronic Devices & Storage Corporation
8 * Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
11 #ifndef _VISCONTI_CLKC_H_
12 #define _VISCONTI_CLKC_H_
14 #include <linux/mfd/syscon.h>
15 #include <linux/clk-provider.h>
17 #include <linux/of_address.h>
18 #include <linux/delay.h>
19 #include <linux/regmap.h>
20 #include <linux/slab.h>
21 #include <linux/string.h>
23 #include <linux/spinlock.h>
27 struct visconti_clk_provider {
29 struct regmap *regmap;
30 struct clk_hw_onecell_data clk_data;
33 struct visconti_clk_gate_table {
36 const struct clk_parent_data *parent_data;
46 struct visconti_fixed_clk {
55 struct visconti_clk_gate {
57 struct regmap *regmap;
68 struct visconti_clk_provider *visconti_init_clk(struct device *dev,
69 struct regmap *regmap,
70 unsigned long nr_clks);
71 int visconti_clk_register_gates(struct visconti_clk_provider *data,
72 const struct visconti_clk_gate_table *clks,
74 const struct visconti_reset_data *reset,
79 #endif /* _VISCONTI_CLKC_H_ */