xref: /linux/drivers/clk/meson/clk-dualdiv.h (revision 889c2b7e)
1*889c2b7eSJerome Brunet /* SPDX-License-Identifier: GPL-2.0 */
2*889c2b7eSJerome Brunet /*
3*889c2b7eSJerome Brunet  * Copyright (c) 2019 BayLibre, SAS.
4*889c2b7eSJerome Brunet  * Author: Jerome Brunet <jbrunet@baylibre.com>
5*889c2b7eSJerome Brunet  */
6*889c2b7eSJerome Brunet 
7*889c2b7eSJerome Brunet #ifndef __MESON_CLK_DUALDIV_H
8*889c2b7eSJerome Brunet #define __MESON_CLK_DUALDIV_H
9*889c2b7eSJerome Brunet 
10*889c2b7eSJerome Brunet #include <linux/clk-provider.h>
11*889c2b7eSJerome Brunet #include "parm.h"
12*889c2b7eSJerome Brunet 
13*889c2b7eSJerome Brunet struct meson_clk_dualdiv_param {
14*889c2b7eSJerome Brunet 	unsigned int n1;
15*889c2b7eSJerome Brunet 	unsigned int n2;
16*889c2b7eSJerome Brunet 	unsigned int m1;
17*889c2b7eSJerome Brunet 	unsigned int m2;
18*889c2b7eSJerome Brunet 	unsigned int dual;
19*889c2b7eSJerome Brunet };
20*889c2b7eSJerome Brunet 
21*889c2b7eSJerome Brunet struct meson_clk_dualdiv_data {
22*889c2b7eSJerome Brunet 	struct parm n1;
23*889c2b7eSJerome Brunet 	struct parm n2;
24*889c2b7eSJerome Brunet 	struct parm m1;
25*889c2b7eSJerome Brunet 	struct parm m2;
26*889c2b7eSJerome Brunet 	struct parm dual;
27*889c2b7eSJerome Brunet 	const struct meson_clk_dualdiv_param *table;
28*889c2b7eSJerome Brunet };
29*889c2b7eSJerome Brunet 
30*889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_dualdiv_ops;
31*889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_dualdiv_ro_ops;
32*889c2b7eSJerome Brunet 
33*889c2b7eSJerome Brunet #endif /* __MESON_CLK_DUALDIV_H */
34