#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/device.h>
#include <linux/iopoll.h>
#include <linux/module.h>
#include <linux/slab.h>
#include "ccu_common.h"
#include "ccu_gate.h"
#include "ccu_reset.h"
struct sunxi_ccu { … };
void ccu_helper_wait_for_lock(struct ccu_common *common, u32 lock)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
bool ccu_is_better_rate(struct ccu_common *common,
unsigned long target_rate,
unsigned long current_rate,
unsigned long best_rate)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static int ccu_pll_notifier_cb(struct notifier_block *nb,
unsigned long event, void *data)
{ … }
int ccu_pll_notifier_register(struct ccu_pll_nb *pll_nb)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static int sunxi_ccu_probe(struct sunxi_ccu *ccu, struct device *dev,
struct device_node *node, void __iomem *reg,
const struct sunxi_ccu_desc *desc)
{ … }
static void devm_sunxi_ccu_release(struct device *dev, void *res)
{ … }
int devm_sunxi_ccu_probe(struct device *dev, void __iomem *reg,
const struct sunxi_ccu_desc *desc)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
void of_sunxi_ccu_probe(struct device_node *node, void __iomem *reg,
const struct sunxi_ccu_desc *desc)
{ … }
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;