#include <linux/clk-provider.h>
#include <linux/clkdev.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/platform_data/x86/clk-pmc-atom.h>
#include <linux/platform_data/x86/pmc_atom.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#define PLT_CLK_NAME_BASE …
struct clk_plt_fixed { … };
struct clk_plt { … };
#define to_clk_plt(_hw) …
struct clk_plt_data { … };
static inline int plt_reg_to_parent(int reg)
{ … }
static inline int plt_parent_to_reg(int index)
{ … }
static inline int plt_reg_to_enabled(int reg)
{ … }
static void plt_clk_reg_update(struct clk_plt *clk, u32 mask, u32 val)
{ … }
static int plt_clk_set_parent(struct clk_hw *hw, u8 index)
{ … }
static u8 plt_clk_get_parent(struct clk_hw *hw)
{ … }
static int plt_clk_enable(struct clk_hw *hw)
{ … }
static void plt_clk_disable(struct clk_hw *hw)
{ … }
static int plt_clk_is_enabled(struct clk_hw *hw)
{ … }
static const struct clk_ops plt_clk_ops = …;
static struct clk_plt *plt_clk_register(struct platform_device *pdev, int id,
const struct pmc_clk_data *pmc_data,
const char **parent_names,
int num_parents)
{ … }
static void plt_clk_unregister(struct clk_plt *pclk)
{ … }
static struct clk_plt_fixed *plt_clk_register_fixed_rate(struct platform_device *pdev,
const char *name,
const char *parent_name,
unsigned long fixed_rate)
{ … }
static void plt_clk_unregister_fixed_rate(struct clk_plt_fixed *pclk)
{ … }
static void plt_clk_unregister_fixed_rate_loop(struct clk_plt_data *data,
unsigned int i)
{ … }
static void plt_clk_free_parent_names_loop(const char **parent_names,
unsigned int i)
{ … }
static void plt_clk_unregister_loop(struct clk_plt_data *data,
unsigned int i)
{ … }
static const char **plt_clk_register_parents(struct platform_device *pdev,
struct clk_plt_data *data,
const struct pmc_clk *clks)
{ … }
static void plt_clk_unregister_parents(struct clk_plt_data *data)
{ … }
static int plt_clk_probe(struct platform_device *pdev)
{ … }
static void plt_clk_remove(struct platform_device *pdev)
{ … }
static struct platform_driver plt_clk_driver = …;
builtin_platform_driver(…) …;