xref: /linux/drivers/clk/meson/clk-mpll.h (revision 26fbb4c8c7c3ee9a4c3b4de555a8587b5a19154e)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2019 BayLibre, SAS.
4  * Author: Jerome Brunet <jbrunet@baylibre.com>
5  */
6 
7 #ifndef __MESON_CLK_MPLL_H
8 #define __MESON_CLK_MPLL_H
9 
10 #include <linux/clk-provider.h>
11 #include <linux/spinlock.h>
12 
13 #include "parm.h"
14 
15 struct meson_clk_mpll_data {
16 	struct parm sdm;
17 	struct parm sdm_en;
18 	struct parm n2;
19 	struct parm ssen;
20 	struct parm misc;
21 	const struct reg_sequence *init_regs;
22 	unsigned int init_count;
23 	spinlock_t *lock;
24 	u8 flags;
25 };
26 
27 #define CLK_MESON_MPLL_ROUND_CLOSEST	BIT(0)
28 #define CLK_MESON_MPLL_SPREAD_SPECTRUM	BIT(1)
29 
30 extern const struct clk_ops meson_clk_mpll_ro_ops;
31 extern const struct clk_ops meson_clk_mpll_ops;
32 
33 #endif /* __MESON_CLK_MPLL_H */
34