#include <linux/clk.h>
#include <linux/ethtool.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include "phy-qcom-qmp-pcs-sgmii.h"
#include "phy-qcom-qmp-qserdes-com-v5.h"
#include "phy-qcom-qmp-qserdes-txrx-v5.h"
#define QSERDES_QMP_PLL …
#define QSERDES_RX …
#define QSERDES_TX …
#define QSERDES_PCS …
#define QSERDES_COM_C_READY …
#define QSERDES_PCS_READY …
#define QSERDES_PCS_SGMIIPHY_READY …
#define QSERDES_COM_C_PLL_LOCKED …
struct qcom_dwmac_sgmii_phy_data { … };
static void qcom_dwmac_sgmii_phy_init_1g(struct regmap *regmap)
{ … }
static void qcom_dwmac_sgmii_phy_init_2p5g(struct regmap *regmap)
{ … }
static inline int
qcom_dwmac_sgmii_phy_poll_status(struct regmap *regmap, unsigned int reg,
unsigned int bit)
{ … }
static int qcom_dwmac_sgmii_phy_calibrate(struct phy *phy)
{ … }
static int qcom_dwmac_sgmii_phy_power_on(struct phy *phy)
{ … }
static int qcom_dwmac_sgmii_phy_power_off(struct phy *phy)
{ … }
static int qcom_dwmac_sgmii_phy_set_speed(struct phy *phy, int speed)
{ … }
static const struct phy_ops qcom_dwmac_sgmii_phy_ops = …;
static const struct regmap_config qcom_dwmac_sgmii_phy_regmap_cfg = …;
static int qcom_dwmac_sgmii_phy_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id qcom_dwmac_sgmii_phy_of_match[] = …;
MODULE_DEVICE_TABLE(of, qcom_dwmac_sgmii_phy_of_match);
static struct platform_driver qcom_dwmac_sgmii_phy_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;