#include <linux/clk-provider.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/platform_device.h>
#include <linux/mfd/wm831x/core.h>
struct wm831x_clk { … };
static int wm831x_xtal_is_prepared(struct clk_hw *hw)
{ … }
static unsigned long wm831x_xtal_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static const struct clk_ops wm831x_xtal_ops = …;
static const struct clk_init_data wm831x_xtal_init = …;
static const unsigned long wm831x_fll_auto_rates[] = …;
static int wm831x_fll_is_prepared(struct clk_hw *hw)
{ … }
static int wm831x_fll_prepare(struct clk_hw *hw)
{ … }
static void wm831x_fll_unprepare(struct clk_hw *hw)
{ … }
static unsigned long wm831x_fll_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static long wm831x_fll_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *unused)
{ … }
static int wm831x_fll_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static const char *wm831x_fll_parents[] = …;
static u8 wm831x_fll_get_parent(struct clk_hw *hw)
{ … }
static const struct clk_ops wm831x_fll_ops = …;
static const struct clk_init_data wm831x_fll_init = …;
static int wm831x_clkout_is_prepared(struct clk_hw *hw)
{ … }
static int wm831x_clkout_prepare(struct clk_hw *hw)
{ … }
static void wm831x_clkout_unprepare(struct clk_hw *hw)
{ … }
static const char *wm831x_clkout_parents[] = …;
static u8 wm831x_clkout_get_parent(struct clk_hw *hw)
{ … }
static int wm831x_clkout_set_parent(struct clk_hw *hw, u8 parent)
{ … }
static const struct clk_ops wm831x_clkout_ops = …;
static const struct clk_init_data wm831x_clkout_init = …;
static int wm831x_clk_probe(struct platform_device *pdev)
{ … }
static struct platform_driver wm831x_clk_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;