1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2019 BayLibre, SAS.
4 * Author: Jerome Brunet <jbrunet@baylibre.com>
7 #ifndef __MESON_CLK_PLL_H
8 #define __MESON_CLK_PLL_H
10 #include <linux/clk-provider.h>
11 #include <linux/regmap.h>
14 struct pll_params_table
{
19 struct pll_mult_range
{
24 #define PLL_PARAMS(_m, _n) \
30 #define CLK_MESON_PLL_ROUND_CLOSEST BIT(0)
31 #define CLK_MESON_PLL_NOINIT_ENABLED BIT(1)
33 struct meson_clk_pll_data
{
40 struct parm current_en
;
42 const struct reg_sequence
*init_regs
;
43 unsigned int init_count
;
44 const struct pll_params_table
*table
;
45 const struct pll_mult_range
*range
;
46 unsigned int frac_max
;
50 extern const struct clk_ops meson_clk_pll_ro_ops
;
51 extern const struct clk_ops meson_clk_pll_ops
;
52 extern const struct clk_ops meson_clk_pcie_pll_ops
;
54 #endif /* __MESON_CLK_PLL_H */