#include <linux/clk-provider.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#define SI514_REG_LP …
#define SI514_REG_M_FRAC1 …
#define SI514_REG_M_FRAC2 …
#define SI514_REG_M_FRAC3 …
#define SI514_REG_M_INT_FRAC …
#define SI514_REG_M_INT …
#define SI514_REG_HS_DIV …
#define SI514_REG_LS_HS_DIV …
#define SI514_REG_OE_STATE …
#define SI514_REG_RESET …
#define SI514_REG_CONTROL …
#define SI514_RESET_RST …
#define SI514_CONTROL_FCAL …
#define SI514_CONTROL_OE …
#define SI514_MIN_FREQ …
#define SI514_MAX_FREQ …
#define FXO …
#define FVCO_MIN …
#define FVCO_MAX …
#define HS_DIV_MAX …
struct clk_si514 { … };
#define to_clk_si514(_hw) …
struct clk_si514_muldiv { … };
static int si514_enable_output(struct clk_si514 *data, bool enable)
{ … }
static int si514_prepare(struct clk_hw *hw)
{ … }
static void si514_unprepare(struct clk_hw *hw)
{ … }
static int si514_is_prepared(struct clk_hw *hw)
{ … }
static int si514_get_muldiv(struct clk_si514 *data,
struct clk_si514_muldiv *settings)
{ … }
static int si514_set_muldiv(struct clk_si514 *data,
struct clk_si514_muldiv *settings)
{ … }
static int si514_calc_muldiv(struct clk_si514_muldiv *settings,
unsigned long frequency)
{ … }
static unsigned long si514_calc_rate(struct clk_si514_muldiv *settings)
{ … }
static unsigned long si514_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static long si514_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
{ … }
static int si514_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static const struct clk_ops si514_clk_ops = …;
static bool si514_regmap_is_volatile(struct device *dev, unsigned int reg)
{ … }
static bool si514_regmap_is_writeable(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config si514_regmap_config = …;
static int si514_probe(struct i2c_client *client)
{ … }
static const struct i2c_device_id si514_id[] = …;
MODULE_DEVICE_TABLE(i2c, si514_id);
static const struct of_device_id clk_si514_of_match[] = …;
MODULE_DEVICE_TABLE(of, clk_si514_of_match);
static struct i2c_driver si514_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;