#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/delay.h>
#include <linux/io.h>
#include "ccu_gate.h"
#include "ccu_mux.h"
#define CCU_MUX_KEY_VALUE …
static u16 ccu_mux_get_prediv(struct ccu_common *common,
struct ccu_mux_internal *cm,
int parent_index)
{ … }
unsigned long ccu_mux_helper_apply_prediv(struct ccu_common *common,
struct ccu_mux_internal *cm,
int parent_index,
unsigned long parent_rate)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static unsigned long ccu_mux_helper_unapply_prediv(struct ccu_common *common,
struct ccu_mux_internal *cm,
int parent_index,
unsigned long parent_rate)
{ … }
int ccu_mux_helper_determine_rate(struct ccu_common *common,
struct ccu_mux_internal *cm,
struct clk_rate_request *req,
unsigned long (*round)(struct ccu_mux_internal *,
struct clk_hw *,
unsigned long *,
unsigned long,
void *),
void *data)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
u8 ccu_mux_helper_get_parent(struct ccu_common *common,
struct ccu_mux_internal *cm)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int ccu_mux_helper_set_parent(struct ccu_common *common,
struct ccu_mux_internal *cm,
u8 index)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
static void ccu_mux_disable(struct clk_hw *hw)
{ … }
static int ccu_mux_enable(struct clk_hw *hw)
{ … }
static int ccu_mux_is_enabled(struct clk_hw *hw)
{ … }
static u8 ccu_mux_get_parent(struct clk_hw *hw)
{ … }
static int ccu_mux_set_parent(struct clk_hw *hw, u8 index)
{ … }
static int ccu_mux_determine_rate(struct clk_hw *hw,
struct clk_rate_request *req)
{ … }
static unsigned long ccu_mux_recalc_rate(struct clk_hw *hw,
unsigned long parent_rate)
{ … }
const struct clk_ops ccu_mux_ops = …;
EXPORT_SYMBOL_NS_GPL(…);
static int ccu_mux_notifier_cb(struct notifier_block *nb,
unsigned long event, void *data)
{ … }
int ccu_mux_notifier_register(struct clk *clk, struct ccu_mux_nb *mux_nb)
{ … }
EXPORT_SYMBOL_NS_GPL(…);