linux/drivers/phy/ti/phy-gmii-sel.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Texas Instruments CPSW Port's PHY Interface Mode selection Driver
 *
 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
 *
 * Based on cpsw-phy-sel.c driver created by Mugunthan V N <[email protected]>
 */

#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_net.h>
#include <linux/phy.h>
#include <linux/phy/phy.h>
#include <linux/regmap.h>

/* AM33xx SoC specific definitions for the CONTROL port */
#define AM33XX_GMII_SEL_MODE_MII
#define AM33XX_GMII_SEL_MODE_RMII
#define AM33XX_GMII_SEL_MODE_RGMII

/* J72xx SoC specific definitions for the CONTROL port */
#define J72XX_GMII_SEL_MODE_SGMII
#define J72XX_GMII_SEL_MODE_QSGMII
#define J72XX_GMII_SEL_MODE_USXGMII
#define J72XX_GMII_SEL_MODE_QSGMII_SUB

#define PHY_GMII_PORT(n)

enum {};

struct phy_gmii_sel_phy_priv {};

struct phy_gmii_sel_soc_data {};

struct phy_gmii_sel_priv {};

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

static const
struct reg_field phy_gmii_sel_fields_am33xx[][PHY_GMII_SEL_LAST] =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_soc_am33xx =;

static const
struct reg_field phy_gmii_sel_fields_dra7[][PHY_GMII_SEL_LAST] =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_soc_dra7 =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_soc_dm814 =;

static const
struct reg_field phy_gmii_sel_fields_am654[][PHY_GMII_SEL_LAST] =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_soc_am654 =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw5g_soc_j7200 =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw9g_soc_j721e =;

static const
struct phy_gmii_sel_soc_data phy_gmii_sel_cpsw9g_soc_j784s4 =;

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

static const struct phy_ops phy_gmii_sel_ops =;

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

static int phy_gmii_init_phy(struct phy_gmii_sel_priv *priv, int port,
			     struct phy_gmii_sel_phy_priv *if_phy)
{}

static int phy_gmii_sel_init_ports(struct phy_gmii_sel_priv *priv)
{}

static int phy_gmii_sel_probe(struct platform_device *pdev)
{}

static int phy_gmii_sel_resume_noirq(struct device *dev)
{}

static DEFINE_NOIRQ_DEV_PM_OPS(phy_gmii_sel_pm_ops, NULL, phy_gmii_sel_resume_noirq);

static struct platform_driver phy_gmii_sel_driver =;
module_platform_driver();

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