linux/drivers/clk/sprd/mux.h

/* SPDX-License-Identifier: GPL-2.0 */
//
// Spreadtrum multiplexer clock driver
//
// Copyright (C) 2017 Spreadtrum, Inc.
// Author: Chunyan Zhang <[email protected]>

#ifndef _SPRD_MUX_H_
#define _SPRD_MUX_H_

#include "common.h"

/**
 * struct sprd_mux_ssel - Mux clock's source select bits in its register
 * @shift: Bit offset of the divider in its register
 * @width: Width of the divider field in its register
 * @table: For some mux clocks, not all sources are used on some special
 *	   chips, this matches the value of mux clock's register and the
 *	   sources which are used for this mux clock
 */
struct sprd_mux_ssel {};

struct sprd_mux {};

#define _SPRD_MUX_CLK(_shift, _width, _table)

#define SPRD_MUX_CLK_HW_INIT_FN(_struct, _name, _parents, _table,	\
				_reg, _shift, _width, _flags, _fn)

#define SPRD_MUX_CLK_TABLE(_struct, _name, _parents, _table,		\
			   _reg, _shift, _width, _flags)

#define SPRD_MUX_CLK(_struct, _name, _parents, _reg,		\
		     _shift, _width, _flags)

#define SPRD_MUX_CLK_DATA_TABLE(_struct, _name, _parents, _table,	\
				_reg, _shift, _width, _flags)

#define SPRD_MUX_CLK_DATA(_struct, _name, _parents, _reg,		\
			  _shift, _width, _flags)

static inline struct sprd_mux *hw_to_sprd_mux(const struct clk_hw *hw)
{}

extern const struct clk_ops sprd_mux_ops;

u8 sprd_mux_helper_get_parent(const struct sprd_clk_common *common,
			      const struct sprd_mux_ssel *mux);
int sprd_mux_helper_set_parent(const struct sprd_clk_common *common,
			       const struct sprd_mux_ssel *mux,
			       u8 index);

#endif /* _SPRD_MUX_H_ */