#include <linux/module.h>
#include <linux/err.h>
#include <linux/of.h>
#include <linux/clkdev.h>
#include <linux/regmap.h>
#include <linux/clk-provider.h>
#include <linux/platform_device.h>
#include <linux/mfd/samsung/s2mps11.h>
#include <linux/mfd/samsung/s2mps13.h>
#include <linux/mfd/samsung/s2mps14.h>
#include <linux/mfd/samsung/s5m8767.h>
#include <linux/mfd/samsung/core.h>
#include <dt-bindings/clock/samsung,s2mps11.h>
struct s2mps11_clk { … };
static struct s2mps11_clk *to_s2mps11_clk(struct clk_hw *hw)
{ … }
static int s2mps11_clk_prepare(struct clk_hw *hw)
{ … }
static void s2mps11_clk_unprepare(struct clk_hw *hw)
{ … }
static int s2mps11_clk_is_prepared(struct clk_hw *hw)
{ … }
static unsigned long s2mps11_clk_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static const struct clk_ops s2mps11_clk_ops = …;
static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = …;
static struct device_node *s2mps11_clk_parse_dt(struct platform_device *pdev,
struct clk_init_data *clks_init)
{ … }
static int s2mps11_clk_probe(struct platform_device *pdev)
{ … }
static void s2mps11_clk_remove(struct platform_device *pdev)
{ … }
static const struct platform_device_id s2mps11_clk_id[] = …;
MODULE_DEVICE_TABLE(platform, s2mps11_clk_id);
#ifdef CONFIG_OF
static const struct of_device_id s2mps11_dt_match[] __used = …;
MODULE_DEVICE_TABLE(of, s2mps11_dt_match);
#endif
static struct platform_driver s2mps11_clk_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;