linux/drivers/clk/mediatek/clk-mux.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2018 MediaTek Inc.
 * Author: Owen Chen <[email protected]>
 */

#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/compiler_types.h>
#include <linux/container_of.h>
#include <linux/err.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/spinlock.h>
#include <linux/slab.h>

#include "clk-mux.h"

struct mtk_clk_mux {};

static inline struct mtk_clk_mux *to_mtk_clk_mux(struct clk_hw *hw)
{}

static int mtk_clk_mux_enable_setclr(struct clk_hw *hw)
{}

static void mtk_clk_mux_disable_setclr(struct clk_hw *hw)
{}

static int mtk_clk_mux_is_enabled(struct clk_hw *hw)
{}

static u8 mtk_clk_mux_get_parent(struct clk_hw *hw)
{}

static int mtk_clk_mux_set_parent_setclr_lock(struct clk_hw *hw, u8 index)
{}

static int mtk_clk_mux_determine_rate(struct clk_hw *hw,
				      struct clk_rate_request *req)
{}

const struct clk_ops mtk_mux_clr_set_upd_ops =;
EXPORT_SYMBOL_GPL();

const struct clk_ops mtk_mux_gate_clr_set_upd_ops  =;
EXPORT_SYMBOL_GPL();

static struct clk_hw *mtk_clk_register_mux(struct device *dev,
					   const struct mtk_mux *mux,
					   struct regmap *regmap,
					   spinlock_t *lock)
{}

static void mtk_clk_unregister_mux(struct clk_hw *hw)
{}

int mtk_clk_register_muxes(struct device *dev,
			   const struct mtk_mux *muxes,
			   int num, struct device_node *node,
			   spinlock_t *lock,
			   struct clk_hw_onecell_data *clk_data)
{}
EXPORT_SYMBOL_GPL();

void mtk_clk_unregister_muxes(const struct mtk_mux *muxes, int num,
			      struct clk_hw_onecell_data *clk_data)
{}
EXPORT_SYMBOL_GPL();

/*
 * This clock notifier is called when the frequency 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 mtk_clk_mux_notifier_cb(struct notifier_block *nb,
				   unsigned long event, void *_data)
{}

int devm_mtk_clk_mux_notifier_register(struct device *dev, struct clk *clk,
				       struct mtk_mux_nb *mux_nb)
{}
EXPORT_SYMBOL_GPL();

MODULE_LICENSE();