xref: /OK3568_Linux_fs/kernel/drivers/clk/meson/meson-aoclk.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2017 BayLibre, SAS
4*4882a593Smuzhiyun  * Author: Neil Armstrong <narmstrong@baylibre.com>
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * Copyright (c) 2018 Amlogic, inc.
7*4882a593Smuzhiyun  * Author: Qiufang Dai <qiufang.dai@amlogic.com>
8*4882a593Smuzhiyun  * Author: Yixun Lan <yixun.lan@amlogic.com>
9*4882a593Smuzhiyun  */
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #ifndef __MESON_AOCLK_H__
12*4882a593Smuzhiyun #define __MESON_AOCLK_H__
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #include <linux/clk-provider.h>
15*4882a593Smuzhiyun #include <linux/platform_device.h>
16*4882a593Smuzhiyun #include <linux/regmap.h>
17*4882a593Smuzhiyun #include <linux/reset-controller.h>
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #include "clk-regmap.h"
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun struct meson_aoclk_data {
22*4882a593Smuzhiyun 	const unsigned int			reset_reg;
23*4882a593Smuzhiyun 	const int				num_reset;
24*4882a593Smuzhiyun 	const unsigned int			*reset;
25*4882a593Smuzhiyun 	const int				num_clks;
26*4882a593Smuzhiyun 	struct clk_regmap			**clks;
27*4882a593Smuzhiyun 	const struct clk_hw_onecell_data	*hw_data;
28*4882a593Smuzhiyun };
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun struct meson_aoclk_reset_controller {
31*4882a593Smuzhiyun 	struct reset_controller_dev		reset;
32*4882a593Smuzhiyun 	const struct meson_aoclk_data		*data;
33*4882a593Smuzhiyun 	struct regmap				*regmap;
34*4882a593Smuzhiyun };
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun int meson_aoclkc_probe(struct platform_device *pdev);
37*4882a593Smuzhiyun #endif
38