linux/drivers/phy/mscc/phy-ocelot-serdes.c

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * SerDes PHY driver for Microsemi Ocelot
 *
 * Copyright (c) 2018 Microsemi
 *
 */

#include <linux/err.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/phy.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <soc/mscc/ocelot_hsio.h>
#include <dt-bindings/phy/phy-ocelot-serdes.h>

struct serdes_ctrl {};

struct serdes_macro {};

#define MCB_S6G_CFG_TIMEOUT

static int __serdes_write_mcb_s6g(struct regmap *regmap, u8 macro, u32 op)
{}

static int serdes_commit_mcb_s6g(struct regmap *regmap, u8 macro)
{}

static int serdes_update_mcb_s6g(struct regmap *regmap, u8 macro)
{}

static int serdes_init_s6g(struct regmap *regmap, u8 serdes, int mode)
{}

#define MCB_S1G_CFG_TIMEOUT

static int __serdes_write_mcb_s1g(struct regmap *regmap, u8 macro, u32 op)
{}

static int serdes_commit_mcb_s1g(struct regmap *regmap, u8 macro)
{}

static int serdes_update_mcb_s1g(struct regmap *regmap, u8 macro)
{}

static int serdes_init_s1g(struct regmap *regmap, u8 serdes)
{}

struct serdes_mux {};

#define SERDES_MUX(_idx, _port, _mode, _submode, _mask, _mux)

#define SERDES_MUX_SGMII(i, p, m, c)
#define SERDES_MUX_QSGMII(i, p, m, c)

static const struct serdes_mux ocelot_serdes_muxes[] =;

static int serdes_set_mode(struct phy *phy, enum phy_mode mode, int submode)
{}

static const struct phy_ops serdes_ops =;

static struct phy *serdes_simple_xlate(struct device *dev,
				       const struct of_phandle_args *args)
{}

static int serdes_phy_create(struct serdes_ctrl *ctrl, u8 idx, struct phy **phy)
{}

static int serdes_probe(struct platform_device *pdev)
{}

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

static struct platform_driver mscc_ocelot_serdes =;

module_platform_driver();

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