#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/err.h>
#include <linux/errno.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/regulator/consumer.h>
#include <dt-bindings/clock/maxim,max9485.h>
#define MAX9485_NUM_CLKS …
#define MAX9485_FS_12KHZ …
#define MAX9485_FS_32KHZ …
#define MAX9485_FS_44_1KHZ …
#define MAX9485_FS_48KHZ …
#define MAX9485_SCALE_256 …
#define MAX9485_SCALE_384 …
#define MAX9485_SCALE_768 …
#define MAX9485_DOUBLE …
#define MAX9485_CLKOUT1_ENABLE …
#define MAX9485_CLKOUT2_ENABLE …
#define MAX9485_MCLK_ENABLE …
#define MAX9485_FREQ_MASK …
struct max9485_rate { … };
static const struct max9485_rate max9485_rates[] = …;
struct max9485_driver_data;
struct max9485_clk_hw { … };
struct max9485_driver_data { … };
static inline struct max9485_clk_hw *to_max9485_clk(struct clk_hw *hw)
{ … }
static int max9485_update_bits(struct max9485_driver_data *drvdata,
u8 mask, u8 value)
{ … }
static int max9485_clk_prepare(struct clk_hw *hw)
{ … }
static void max9485_clk_unprepare(struct clk_hw *hw)
{ … }
static int max9485_clkout_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static unsigned long max9485_clkout_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static long max9485_clkout_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
{ … }
struct max9485_clk { … };
static const struct max9485_clk max9485_clks[MAX9485_NUM_CLKS] = …;
static struct clk_hw *
max9485_of_clk_get(struct of_phandle_args *clkspec, void *data)
{ … }
static int max9485_i2c_probe(struct i2c_client *client)
{ … }
static int __maybe_unused max9485_suspend(struct device *dev)
{ … }
static int __maybe_unused max9485_resume(struct device *dev)
{ … }
static const struct dev_pm_ops max9485_pm_ops = …;
static const struct of_device_id max9485_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, max9485_dt_ids);
static const struct i2c_device_id max9485_i2c_ids[] = …;
MODULE_DEVICE_TABLE(i2c, max9485_i2c_ids);
static struct i2c_driver max9485_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;