linux/drivers/net/phy/bcm84881.c

// SPDX-License-Identifier: GPL-2.0
// Broadcom BCM84881 NBASE-T PHY driver, as found on a SFP+ module.
// Copyright (C) 2019 Russell King, Deep Blue Solutions Ltd.
//
// Like the Marvell 88x3310, the Broadcom 84881 changes its host-side
// interface according to the operating speed between 10GBASE-R,
// 2500BASE-X and SGMII (but unlike the 88x3310, without the control
// word).
//
// This driver only supports those aspects of the PHY that I'm able to
// observe and test with the SFP+ module, which is an incomplete subset
// of what this PHY is able to support. For example, I only assume it
// supports a single lane Serdes connection, but it may be that the PHY
// is able to support more than that.
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/phy.h>

enum {};

static int bcm84881_wait_init(struct phy_device *phydev)
{}

static void bcm84881_fill_possible_interfaces(struct phy_device *phydev)
{}

static int bcm84881_config_init(struct phy_device *phydev)
{}

static int bcm84881_probe(struct phy_device *phydev)
{}

static int bcm84881_get_features(struct phy_device *phydev)
{}

static int bcm84881_config_aneg(struct phy_device *phydev)
{}

static int bcm84881_aneg_done(struct phy_device *phydev)
{}

static int bcm84881_read_status(struct phy_device *phydev)
{}

static struct phy_driver bcm84881_drivers[] =;

module_phy_driver(bcm84881_drivers);

/* FIXME: module auto-loading for Clause 45 PHYs seems non-functional */
static struct mdio_device_id __maybe_unused bcm84881_tbl[] =;
MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_DEVICE_TABLE(mdio, bcm84881_tbl);
MODULE_LICENSE();