#include <linux/clk-provider.h>
#include <linux/export.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/err.h>
#include "clk.h"
struct clk_pfd { … };
#define to_clk_pfd(_hw) …
#define SET …
#define CLR …
#define OTG …
static int clk_pfd_enable(struct clk_hw *hw)
{ … }
static void clk_pfd_disable(struct clk_hw *hw)
{ … }
static unsigned long clk_pfd_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
static long clk_pfd_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *prate)
{ … }
static int clk_pfd_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{ … }
static int clk_pfd_is_enabled(struct clk_hw *hw)
{ … }
static const struct clk_ops clk_pfd_ops = …;
struct clk_hw *imx_clk_hw_pfd(const char *name, const char *parent_name,
void __iomem *reg, u8 idx)
{ … }
EXPORT_SYMBOL_GPL(…);