#include <linux/bitfield.h>
#include <linux/clk-provider.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/io.h>
#include "pll.h"
struct visconti_pll { … };
#define PLL_CONF_REG …
#define PLL_CTRL_REG …
#define PLL_FRACMODE_REG …
#define PLL_INTIN_REG …
#define PLL_FRACIN_REG …
#define PLL_REFDIV_REG …
#define PLL_POSTDIV_REG …
#define PLL_CONFIG_SEL …
#define PLL_PLLEN …
#define PLL_BYPASS …
#define PLL_INTIN_MASK …
#define PLL_FRACIN_MASK …
#define PLL_REFDIV_MASK …
#define PLL_POSTDIV_MASK …
#define PLL0_FRACMODE_DACEN …
#define PLL0_FRACMODE_DSMEN …
#define PLL_CREATE_FRACMODE(table) …
#define PLL_CREATE_OSTDIV(table) …
static inline struct visconti_pll *to_visconti_pll(struct clk_hw *hw)
{ … }
static void visconti_pll_get_params(struct visconti_pll *pll,
struct visconti_pll_rate_table *rate_table)
{ … }
static const struct visconti_pll_rate_table *visconti_get_pll_settings(struct visconti_pll *pll,
unsigned long rate)
{ … }
static unsigned long visconti_get_pll_rate_from_data(struct visconti_pll *pll,
const struct visconti_pll_rate_table *rate)
{ … }
static long visconti_pll_round_rate(struct clk_hw *hw,
unsigned long rate, unsigned long *prate)
{ … }
static unsigned long visconti_pll_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static int visconti_pll_set_params(struct visconti_pll *pll,
const struct visconti_pll_rate_table *rate_table)
{ … }
static int visconti_pll_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static int visconti_pll_is_enabled(struct clk_hw *hw)
{ … }
static int visconti_pll_enable(struct clk_hw *hw)
{ … }
static void visconti_pll_disable(struct clk_hw *hw)
{ … }
static const struct clk_ops visconti_pll_ops = …;
static struct clk_hw *visconti_register_pll(struct visconti_pll_provider *ctx,
const char *name,
const char *parent_name,
int offset,
const struct visconti_pll_rate_table *rate_table,
spinlock_t *lock)
{ … }
static void visconti_pll_add_lookup(struct visconti_pll_provider *ctx,
struct clk_hw *hw_clk,
unsigned int id)
{ … }
void __init visconti_register_plls(struct visconti_pll_provider *ctx,
const struct visconti_pll_info *list,
unsigned int nr_plls,
spinlock_t *lock)
{ … }
struct visconti_pll_provider * __init visconti_init_pll(struct device_node *np,
void __iomem *base,
unsigned long nr_plls)
{ … }