#include <linux/clk-provider.h>
#include <linux/module.h>
#include <linux/regmap.h>
#define SI514_REG_M_FRAC1 5
#define SI514_REG_M_FRAC2 6
#define SI514_REG_M_FRAC3 7
#define SI514_REG_M_INT_FRAC 8
#define SI514_REG_M_INT 9
#define SI514_REG_HS_DIV 10
#define SI514_REG_LS_HS_DIV 11
#define SI514_REG_OE_STATE 14
#define SI514_REG_RESET 128
#define SI514_REG_CONTROL 132
#define SI514_RESET_RST BIT(7)
#define SI514_CONTROL_FCAL BIT(0)
#define SI514_CONTROL_OE BIT(2)
#define SI514_MIN_FREQ 100000U
#define SI514_MAX_FREQ 250000000U
#define FVCO_MIN 2080000000U
#define FVCO_MAX 2500000000U
struct i2c_client *i2c_client;
#define to_clk_si514(_hw) container_of(_hw, struct clk_si514, hw)
struct clk_si514_muldiv {