#include <linux/clk-provider.h>
#include <linux/i2c.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>
#define RS9_REG_OE …
#define RS9_REG_SS …
#define RS9_REG_SS_AMP_0V6 …
#define RS9_REG_SS_AMP_0V7 …
#define RS9_REG_SS_AMP_0V8 …
#define RS9_REG_SS_AMP_0V9 …
#define RS9_REG_SS_AMP_DEFAULT …
#define RS9_REG_SS_AMP_MASK …
#define RS9_REG_SS_SSC_100 …
#define RS9_REG_SS_SSC_M025 …
#define RS9_REG_SS_SSC_M050 …
#define RS9_REG_SS_SSC_DEFAULT …
#define RS9_REG_SS_SSC_MASK …
#define RS9_REG_SS_SSC_LOCK …
#define RS9_REG_SR …
#define RS9_REG_REF …
#define RS9_REG_REF_OE …
#define RS9_REG_REF_OD …
#define RS9_REG_REF_SR_SLOWEST …
#define RS9_REG_REF_SR_SLOW …
#define RS9_REG_REF_SR_FAST …
#define RS9_REG_REF_SR_FASTER …
#define RS9_REG_VID …
#define RS9_REG_DID …
#define RS9_REG_BCP …
#define RS9_REG_VID_MASK …
#define RS9_REG_VID_IDT …
#define RS9_REG_DID_TYPE_FGV …
#define RS9_REG_DID_TYPE_DBV …
#define RS9_REG_DID_TYPE_DMV …
#define RS9_REG_DID_TYPE_SHIFT …
struct rs9_chip_info { … };
struct rs9_driver_data { … };
static const struct regmap_range rs9_readable_ranges[] = …;
static const struct regmap_access_table rs9_readable_table = …;
static const struct regmap_range rs9_writeable_ranges[] = …;
static const struct regmap_access_table rs9_writeable_table = …;
static int rs9_regmap_i2c_write(void *context,
unsigned int reg, unsigned int val)
{ … }
static int rs9_regmap_i2c_read(void *context,
unsigned int reg, unsigned int *val)
{ … }
static const struct regmap_config rs9_regmap_config = …;
static u8 rs9_calc_dif(const struct rs9_driver_data *rs9, int idx)
{ … }
static int rs9_get_output_config(struct rs9_driver_data *rs9, int idx)
{ … }
static int rs9_get_common_config(struct rs9_driver_data *rs9)
{ … }
static void rs9_update_config(struct rs9_driver_data *rs9)
{ … }
static struct clk_hw *
rs9_of_clk_get(struct of_phandle_args *clkspec, void *data)
{ … }
static int rs9_probe(struct i2c_client *client)
{ … }
static int __maybe_unused rs9_suspend(struct device *dev)
{ … }
static int __maybe_unused rs9_resume(struct device *dev)
{ … }
static const struct rs9_chip_info renesas_9fgv0241_info = …;
static const struct rs9_chip_info renesas_9fgv0441_info = …;
static const struct rs9_chip_info renesas_9fgv0841_info = …;
static const struct i2c_device_id rs9_id[] = …;
MODULE_DEVICE_TABLE(i2c, rs9_id);
static const struct of_device_id clk_rs9_of_match[] = …;
MODULE_DEVICE_TABLE(of, clk_rs9_of_match);
static SIMPLE_DEV_PM_OPS(rs9_pm_ops, rs9_suspend, rs9_resume);
static struct i2c_driver rs9_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;