1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (c) 2019 BayLibre, SAS.
- * Author: Jerome Brunet <[email protected]>
- */
- #ifndef __MESON_CLK_PLL_H
- #define __MESON_CLK_PLL_H
- #include <linux/clk-provider.h>
- #include <linux/regmap.h>
- #include "parm.h"
- struct pll_params_table {
- unsigned int m;
- unsigned int n;
- };
- struct pll_mult_range {
- unsigned int min;
- unsigned int max;
- };
- #define PLL_PARAMS(_m, _n) \
- { \
- .m = (_m), \
- .n = (_n), \
- }
- #define CLK_MESON_PLL_ROUND_CLOSEST BIT(0)
- struct meson_clk_pll_data {
- struct parm en;
- struct parm m;
- struct parm n;
- struct parm frac;
- struct parm l;
- struct parm rst;
- const struct reg_sequence *init_regs;
- unsigned int init_count;
- const struct pll_params_table *table;
- const struct pll_mult_range *range;
- u8 flags;
- };
- extern const struct clk_ops meson_clk_pll_ro_ops;
- extern const struct clk_ops meson_clk_pll_ops;
- extern const struct clk_ops meson_clk_pcie_pll_ops;
- #endif /* __MESON_CLK_PLL_H */
|