#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/printk.h>
#include <linux/slab.h>
#include <linux/clk-provider.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/ioport.h>
#include <linux/regmap.h>
#include <dt-bindings/clock/bt1-ccu.h>
#include "ccu-pll.h"
#define CCU_CPU_PLL_BASE …
#define CCU_SATA_PLL_BASE …
#define CCU_DDR_PLL_BASE …
#define CCU_PCIE_PLL_BASE …
#define CCU_ETH_PLL_BASE …
#define CCU_PLL_INFO(_id, _name, _pname, _base, _flags, _features) …
#define CCU_PLL_NUM …
struct ccu_pll_info { … };
static const struct ccu_pll_info pll_info[] = …;
struct ccu_pll_data { … };
static struct ccu_pll_data *pll_data;
static struct ccu_pll *ccu_pll_find_desc(struct ccu_pll_data *data,
unsigned int clk_id)
{ … }
static struct ccu_pll_data *ccu_pll_create_data(struct device_node *np)
{ … }
static void ccu_pll_free_data(struct ccu_pll_data *data)
{ … }
static int ccu_pll_find_sys_regs(struct ccu_pll_data *data)
{ … }
static struct clk_hw *ccu_pll_of_clk_hw_get(struct of_phandle_args *clkspec,
void *priv)
{ … }
static int ccu_pll_clk_register(struct ccu_pll_data *data, bool defer)
{ … }
static void ccu_pll_clk_unregister(struct ccu_pll_data *data, bool defer)
{ … }
static int ccu_pll_of_register(struct ccu_pll_data *data)
{ … }
static int ccu_pll_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id ccu_pll_of_match[] = …;
static struct platform_driver ccu_pll_driver = …;
builtin_platform_driver(…) …;
static __init void ccu_pll_init(struct device_node *np)
{ … }
CLK_OF_DECLARE_DRIVER(ccu_pll, "baikal,bt1-ccu-pll", ccu_pll_init);