linux/drivers/clk/visconti/pll.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Toshiba Visconti PLL driver
 *
 * Copyright (c) 2021 TOSHIBA CORPORATION
 * Copyright (c) 2021 Toshiba Electronic Devices & Storage Corporation
 *
 * Nobuhiro Iwamatsu <[email protected]>
 */

#include <linux/bitfield.h>
#include <linux/clk-provider.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/io.h>

#include "pll.h"

struct visconti_pll {};

#define PLL_CONF_REG
#define PLL_CTRL_REG
#define PLL_FRACMODE_REG
#define PLL_INTIN_REG
#define PLL_FRACIN_REG
#define PLL_REFDIV_REG
#define PLL_POSTDIV_REG

#define PLL_CONFIG_SEL
#define PLL_PLLEN
#define PLL_BYPASS
#define PLL_INTIN_MASK
#define PLL_FRACIN_MASK
#define PLL_REFDIV_MASK
#define PLL_POSTDIV_MASK

#define PLL0_FRACMODE_DACEN
#define PLL0_FRACMODE_DSMEN

#define PLL_CREATE_FRACMODE(table)
#define PLL_CREATE_OSTDIV(table)

static inline struct visconti_pll *to_visconti_pll(struct clk_hw *hw)
{}

static void visconti_pll_get_params(struct visconti_pll *pll,
				    struct visconti_pll_rate_table *rate_table)
{}

static const struct visconti_pll_rate_table *visconti_get_pll_settings(struct visconti_pll *pll,
								       unsigned long rate)
{}

static unsigned long visconti_get_pll_rate_from_data(struct visconti_pll *pll,
						     const struct visconti_pll_rate_table *rate)
{}

static long visconti_pll_round_rate(struct clk_hw *hw,
				    unsigned long rate, unsigned long *prate)
{}

static unsigned long visconti_pll_recalc_rate(struct clk_hw *hw,
					      unsigned long parent_rate)
{}

static int visconti_pll_set_params(struct visconti_pll *pll,
				   const struct visconti_pll_rate_table *rate_table)
{}

static int visconti_pll_set_rate(struct clk_hw *hw, unsigned long rate,
			    unsigned long parent_rate)
{}

static int visconti_pll_is_enabled(struct clk_hw *hw)
{}

static int visconti_pll_enable(struct clk_hw *hw)
{}

static void visconti_pll_disable(struct clk_hw *hw)
{}

static const struct clk_ops visconti_pll_ops =;

static struct clk_hw *visconti_register_pll(struct visconti_pll_provider *ctx,
					    const char *name,
					    const char *parent_name,
					    int offset,
					    const struct visconti_pll_rate_table *rate_table,
					    spinlock_t *lock)
{}

static void visconti_pll_add_lookup(struct visconti_pll_provider *ctx,
				    struct clk_hw *hw_clk,
				    unsigned int id)
{}

void __init visconti_register_plls(struct visconti_pll_provider *ctx,
				   const struct visconti_pll_info *list,
				   unsigned int nr_plls,
				   spinlock_t *lock)
{}

struct visconti_pll_provider * __init visconti_init_pll(struct device_node *np,
							void __iomem *base,
							unsigned long nr_plls)
{}