xref: /openbmc/linux/drivers/clk/meson/clk-mpll.h (revision 19855c82)
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_MPLL_H
8889c2b7eSJerome Brunet #define __MESON_CLK_MPLL_H
9889c2b7eSJerome Brunet 
10889c2b7eSJerome Brunet #include <linux/clk-provider.h>
11889c2b7eSJerome Brunet #include <linux/spinlock.h>
12889c2b7eSJerome Brunet 
13889c2b7eSJerome Brunet #include "parm.h"
14889c2b7eSJerome Brunet 
15889c2b7eSJerome Brunet struct meson_clk_mpll_data {
16889c2b7eSJerome Brunet 	struct parm sdm;
17889c2b7eSJerome Brunet 	struct parm sdm_en;
18889c2b7eSJerome Brunet 	struct parm n2;
19889c2b7eSJerome Brunet 	struct parm ssen;
20889c2b7eSJerome Brunet 	struct parm misc;
2119855c82SJerome Brunet 	const struct reg_sequence *init_regs;
2219855c82SJerome Brunet 	unsigned int init_count;
23889c2b7eSJerome Brunet 	spinlock_t *lock;
24889c2b7eSJerome Brunet 	u8 flags;
25889c2b7eSJerome Brunet };
26889c2b7eSJerome Brunet 
27889c2b7eSJerome Brunet #define CLK_MESON_MPLL_ROUND_CLOSEST	BIT(0)
28f9b3eeebSJerome Brunet #define CLK_MESON_MPLL_SPREAD_SPECTRUM	BIT(1)
29889c2b7eSJerome Brunet 
30889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_mpll_ro_ops;
31889c2b7eSJerome Brunet extern const struct clk_ops meson_clk_mpll_ops;
32889c2b7eSJerome Brunet 
33889c2b7eSJerome Brunet #endif /* __MESON_CLK_MPLL_H */
34