#include <linux/clk-provider.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/bitfield.h>
#define PLLDIG_REG_PLLSR …
#define PLLDIG_LOCK_MASK …
#define PLLDIG_REG_PLLDV …
#define PLLDIG_MFD_MASK …
#define PLLDIG_RFDPHI1_MASK …
#define PLLDIG_REG_PLLFM …
#define PLLDIG_SSCGBYP_ENABLE …
#define PLLDIG_REG_PLLFD …
#define PLLDIG_FDEN …
#define PLLDIG_FRAC_MASK …
#define PLLDIG_REG_PLLCAL1 …
#define PLLDIG_REG_PLLCAL2 …
#define PLLDIG_MIN_VCO_FREQ …
#define PLLDIG_MAX_VCO_FREQ …
#define PHI1_MIN_FREQ …
#define PHI1_MAX_FREQ …
#define MAX_RFDPHI1 …
#define PLLDIG_DEFAULT_MFD …
#define MFDEN …
static const struct clk_parent_data parent_data[] = …;
struct clk_plldig { … };
#define to_clk_plldig(_hw) …
static int plldig_enable(struct clk_hw *hw)
{ … }
static void plldig_disable(struct clk_hw *hw)
{ … }
static int plldig_is_enabled(struct clk_hw *hw)
{ … }
static unsigned long plldig_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static unsigned long plldig_calc_target_div(unsigned long vco_freq,
unsigned long target_rate)
{ … }
static int plldig_determine_rate(struct clk_hw *hw,
struct clk_rate_request *req)
{ … }
static int plldig_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static const struct clk_ops plldig_clk_ops = …;
static int plldig_init(struct clk_hw *hw)
{ … }
static int plldig_clk_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id plldig_clk_id[] = …;
MODULE_DEVICE_TABLE(of, plldig_clk_id);
static struct platform_driver plldig_clk_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;