linux/drivers/clk/sunxi-ng/ccu_mux.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2016 Maxime Ripard
 * Maxime Ripard <[email protected]>
 */

#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();

/*
 * This clock notifier is called when the frequency of the of the parent
 * PLL clock is to be changed. The idea is to switch the parent to a
 * stable clock, such as the main oscillator, while the PLL frequency
 * stabilizes.
 */
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();