#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/mfd/max77620.h>
#include <linux/mfd/max77686.h>
#include <linux/mfd/max77686-private.h>
#include <linux/clk-provider.h>
#include <linux/mutex.h>
#include <linux/clkdev.h>
#include <linux/of.h>
#include <linux/regmap.h>
#include <dt-bindings/clock/maxim,max77686.h>
#include <dt-bindings/clock/maxim,max77802.h>
#include <dt-bindings/clock/maxim,max77620.h>
#define MAX77802_CLOCK_LOW_JITTER_SHIFT …
enum max77686_chip_name { … };
struct max77686_hw_clk_info { … };
struct max77686_clk_init_data { … };
struct max77686_clk_driver_data { … };
static const struct
max77686_hw_clk_info max77686_hw_clks_info[MAX77686_CLKS_NUM] = …;
static const struct
max77686_hw_clk_info max77802_hw_clks_info[MAX77802_CLKS_NUM] = …;
static const struct
max77686_hw_clk_info max77620_hw_clks_info[MAX77620_CLKS_NUM] = …;
static struct max77686_clk_init_data *to_max77686_clk_init_data(
struct clk_hw *hw)
{ … }
static int max77686_clk_prepare(struct clk_hw *hw)
{ … }
static void max77686_clk_unprepare(struct clk_hw *hw)
{ … }
static int max77686_clk_is_prepared(struct clk_hw *hw)
{ … }
static unsigned long max77686_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static const struct clk_ops max77686_clk_ops = …;
static struct clk_hw *
of_clk_max77686_get(struct of_phandle_args *clkspec, void *data)
{ … }
static int max77686_clk_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id max77686_clk_id[] = …;
MODULE_DEVICE_TABLE(platform, max77686_clk_id);
static struct platform_driver max77686_clk_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;