xref: /linux/drivers/clk/meson/clk-mpll.h (revision cdd30ebb1b9f36159d66f088b61aee264e649d7a)
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 	u8 flags;
24 };
25 
26 #define CLK_MESON_MPLL_ROUND_CLOSEST	BIT(0)
27 #define CLK_MESON_MPLL_SPREAD_SPECTRUM	BIT(1)
28 
29 extern const struct clk_ops meson_clk_mpll_ro_ops;
30 extern const struct clk_ops meson_clk_mpll_ops;
31 
32 #endif /* __MESON_CLK_MPLL_H */
33