linux/drivers/clk/clk-renesas-pcie.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Driver for Renesas 9-series PCIe clock generator driver
 *
 * The following series can be supported:
 *   - 9FGV/9DBV/9DMV/9FGL/9DML/9QXL/9SQ
 * Currently supported:
 *   - 9FGV0241
 *   - 9FGV0441
 *   - 9FGV0841
 *
 * Copyright (C) 2022 Marek Vasut <[email protected]>
 */

#include <linux/clk-provider.h>
#include <linux/i2c.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regmap.h>

#define RS9_REG_OE
#define RS9_REG_SS
#define RS9_REG_SS_AMP_0V6
#define RS9_REG_SS_AMP_0V7
#define RS9_REG_SS_AMP_0V8
#define RS9_REG_SS_AMP_0V9
#define RS9_REG_SS_AMP_DEFAULT
#define RS9_REG_SS_AMP_MASK
#define RS9_REG_SS_SSC_100
#define RS9_REG_SS_SSC_M025
#define RS9_REG_SS_SSC_M050
#define RS9_REG_SS_SSC_DEFAULT
#define RS9_REG_SS_SSC_MASK
#define RS9_REG_SS_SSC_LOCK
#define RS9_REG_SR
#define RS9_REG_REF
#define RS9_REG_REF_OE
#define RS9_REG_REF_OD
#define RS9_REG_REF_SR_SLOWEST
#define RS9_REG_REF_SR_SLOW
#define RS9_REG_REF_SR_FAST
#define RS9_REG_REF_SR_FASTER
#define RS9_REG_VID
#define RS9_REG_DID
#define RS9_REG_BCP

#define RS9_REG_VID_MASK
#define RS9_REG_VID_IDT

#define RS9_REG_DID_TYPE_FGV
#define RS9_REG_DID_TYPE_DBV
#define RS9_REG_DID_TYPE_DMV
#define RS9_REG_DID_TYPE_SHIFT

/* Structure to describe features of a particular 9-series model */
struct rs9_chip_info {};

struct rs9_driver_data {};

/*
 * Renesas 9-series i2c regmap
 */
static const struct regmap_range rs9_readable_ranges[] =;

static const struct regmap_access_table rs9_readable_table =;

static const struct regmap_range rs9_writeable_ranges[] =;

static const struct regmap_access_table rs9_writeable_table =;

static int rs9_regmap_i2c_write(void *context,
				unsigned int reg, unsigned int val)
{}

static int rs9_regmap_i2c_read(void *context,
			       unsigned int reg, unsigned int *val)
{}

static const struct regmap_config rs9_regmap_config =;

static u8 rs9_calc_dif(const struct rs9_driver_data *rs9, int idx)
{}

static int rs9_get_output_config(struct rs9_driver_data *rs9, int idx)
{}

static int rs9_get_common_config(struct rs9_driver_data *rs9)
{}

static void rs9_update_config(struct rs9_driver_data *rs9)
{}

static struct clk_hw *
rs9_of_clk_get(struct of_phandle_args *clkspec, void *data)
{}

static int rs9_probe(struct i2c_client *client)
{}

static int __maybe_unused rs9_suspend(struct device *dev)
{}

static int __maybe_unused rs9_resume(struct device *dev)
{}

static const struct rs9_chip_info renesas_9fgv0241_info =;

static const struct rs9_chip_info renesas_9fgv0441_info =;

static const struct rs9_chip_info renesas_9fgv0841_info =;

static const struct i2c_device_id rs9_id[] =;
MODULE_DEVICE_TABLE(i2c, rs9_id);

static const struct of_device_id clk_rs9_of_match[] =;
MODULE_DEVICE_TABLE(of, clk_rs9_of_match);

static SIMPLE_DEV_PM_OPS(rs9_pm_ops, rs9_suspend, rs9_resume);

static struct i2c_driver rs9_driver =;
module_i2c_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();