xref: /openbmc/linux/drivers/clk/meson/clk-dualdiv.h (revision 889c2b7e)
1889c2b7eSJerome Brunet /* SPDX-License-Identifier: GPL-2.0 */
2889c2b7eSJerome Brunet /*
3889c2b7eSJerome Brunet  * Copyright (c) 2019 BayLibre, SAS.
4889c2b7eSJerome Brunet  * Author: Jerome Brunet <jbrunet@baylibre.com>
5889c2b7eSJerome Brunet  */
6889c2b7eSJerome Brunet 
7889c2b7eSJerome Brunet #ifndef __MESON_CLK_DUALDIV_H
8889c2b7eSJerome Brunet #define __MESON_CLK_DUALDIV_H
9889c2b7eSJerome Brunet 
10889c2b7eSJerome Brunet #include <linux/clk-provider.h>
11889c2b7eSJerome Brunet #include "parm.h"
12889c2b7eSJerome Brunet 
13889c2b7eSJerome Brunet struct meson_clk_dualdiv_param {
14889c2b7eSJerome Brunet 	unsigned int n1;
15889c2b7eSJerome Brunet 	unsigned int n2;
16889c2b7eSJerome Brunet 	unsigned int m1;
17889c2b7eSJerome Brunet 	unsigned int m2;
18889c2b7eSJerome Brunet 	unsigned int dual;
19889c2b7eSJerome Brunet };
20889c2b7eSJerome Brunet 
21889c2b7eSJerome Brunet struct meson_clk_dualdiv_data {
22889c2b7eSJerome Brunet 	struct parm n1;
23889c2b7eSJerome Brunet 	struct parm n2;
24889c2b7eSJerome Brunet 	struct parm m1;
25889c2b7eSJerome Brunet 	struct parm m2;
26889c2b7eSJerome Brunet 	struct parm dual;
27889c2b7eSJerome Brunet 	const struct meson_clk_dualdiv_param *table;
28889c2b7eSJerome Brunet };
29889c2b7eSJerome Brunet 
30889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_dualdiv_ops;
31889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_dualdiv_ro_ops;
32889c2b7eSJerome Brunet 
33889c2b7eSJerome Brunet #endif /* __MESON_CLK_DUALDIV_H */
34