#include <linux/mdio.h>
#include <linux/module.h>
#include <linux/phy.h>
#include <linux/of.h>
#include <linux/bitfield.h>
#define XWAY_MDIO_MIICTRL …
#define XWAY_MDIO_IMASK …
#define XWAY_MDIO_ISTAT …
#define XWAY_MDIO_LED …
#define XWAY_MDIO_MIICTRL_RXSKEW_MASK …
#define XWAY_MDIO_MIICTRL_TXSKEW_MASK …
#define XWAY_MDIO_LED_LED3_EN …
#define XWAY_MDIO_LED_LED2_EN …
#define XWAY_MDIO_LED_LED1_EN …
#define XWAY_MDIO_LED_LED0_EN …
#define XWAY_MDIO_LED_LED3_DA …
#define XWAY_MDIO_LED_LED2_DA …
#define XWAY_MDIO_LED_LED1_DA …
#define XWAY_MDIO_LED_LED0_DA …
#define XWAY_MDIO_INIT_WOL …
#define XWAY_MDIO_INIT_MSRE …
#define XWAY_MDIO_INIT_NPRX …
#define XWAY_MDIO_INIT_NPTX …
#define XWAY_MDIO_INIT_ANE …
#define XWAY_MDIO_INIT_ANC …
#define XWAY_MDIO_INIT_ADSC …
#define XWAY_MDIO_INIT_MPIPC …
#define XWAY_MDIO_INIT_MDIXC …
#define XWAY_MDIO_INIT_DXMC …
#define XWAY_MDIO_INIT_LSPC …
#define XWAY_MDIO_INIT_LSTC …
#define XWAY_MDIO_INIT_MASK …
#define ADVERTISED_MPD …
#define XWAY_MMD_LEDCH …
#define XWAY_MMD_LEDCH_NACS_NONE …
#define XWAY_MMD_LEDCH_NACS_LINK …
#define XWAY_MMD_LEDCH_NACS_PDOWN …
#define XWAY_MMD_LEDCH_NACS_EEE …
#define XWAY_MMD_LEDCH_NACS_ANEG …
#define XWAY_MMD_LEDCH_NACS_ABIST …
#define XWAY_MMD_LEDCH_NACS_CDIAG …
#define XWAY_MMD_LEDCH_NACS_TEST …
#define XWAY_MMD_LEDCH_SBF_F02HZ …
#define XWAY_MMD_LEDCH_SBF_F04HZ …
#define XWAY_MMD_LEDCH_SBF_F08HZ …
#define XWAY_MMD_LEDCH_SBF_F16HZ …
#define XWAY_MMD_LEDCH_FBF_F02HZ …
#define XWAY_MMD_LEDCH_FBF_F04HZ …
#define XWAY_MMD_LEDCH_FBF_F08HZ …
#define XWAY_MMD_LEDCH_FBF_F16HZ …
#define XWAY_MMD_LEDCL …
#define XWAY_MMD_LEDCH_CBLINK_NONE …
#define XWAY_MMD_LEDCH_CBLINK_LINK …
#define XWAY_MMD_LEDCH_CBLINK_PDOWN …
#define XWAY_MMD_LEDCH_CBLINK_EEE …
#define XWAY_MMD_LEDCH_CBLINK_ANEG …
#define XWAY_MMD_LEDCH_CBLINK_ABIST …
#define XWAY_MMD_LEDCH_CBLINK_CDIAG …
#define XWAY_MMD_LEDCH_CBLINK_TEST …
#define XWAY_MMD_LEDCH_SCAN_NONE …
#define XWAY_MMD_LEDCH_SCAN_LINK …
#define XWAY_MMD_LEDCH_SCAN_PDOWN …
#define XWAY_MMD_LEDCH_SCAN_EEE …
#define XWAY_MMD_LEDCH_SCAN_ANEG …
#define XWAY_MMD_LEDCH_SCAN_ABIST …
#define XWAY_MMD_LEDCH_SCAN_CDIAG …
#define XWAY_MMD_LEDCH_SCAN_TEST …
#define XWAY_MMD_LED0H …
#define XWAY_MMD_LEDxH_BLINKF_MASK …
#define XWAY_MMD_LEDxH_BLINKF_NONE …
#define XWAY_MMD_LEDxH_BLINKF_LINK10 …
#define XWAY_MMD_LEDxH_BLINKF_LINK100 …
#define XWAY_MMD_LEDxH_BLINKF_LINK10X …
#define XWAY_MMD_LEDxH_BLINKF_LINK1000 …
#define XWAY_MMD_LEDxH_BLINKF_LINK10_0 …
#define XWAY_MMD_LEDxH_BLINKF_LINK100X …
#define XWAY_MMD_LEDxH_BLINKF_LINK10XX …
#define XWAY_MMD_LEDxH_BLINKF_PDOWN …
#define XWAY_MMD_LEDxH_BLINKF_EEE …
#define XWAY_MMD_LEDxH_BLINKF_ANEG …
#define XWAY_MMD_LEDxH_BLINKF_ABIST …
#define XWAY_MMD_LEDxH_BLINKF_CDIAG …
#define XWAY_MMD_LEDxH_CON_MASK …
#define XWAY_MMD_LEDxH_CON_NONE …
#define XWAY_MMD_LEDxH_CON_LINK10 …
#define XWAY_MMD_LEDxH_CON_LINK100 …
#define XWAY_MMD_LEDxH_CON_LINK10X …
#define XWAY_MMD_LEDxH_CON_LINK1000 …
#define XWAY_MMD_LEDxH_CON_LINK10_0 …
#define XWAY_MMD_LEDxH_CON_LINK100X …
#define XWAY_MMD_LEDxH_CON_LINK10XX …
#define XWAY_MMD_LEDxH_CON_PDOWN …
#define XWAY_MMD_LEDxH_CON_EEE …
#define XWAY_MMD_LEDxH_CON_ANEG …
#define XWAY_MMD_LEDxH_CON_ABIST …
#define XWAY_MMD_LEDxH_CON_CDIAG …
#define XWAY_MMD_LEDxH_CON_COPPER …
#define XWAY_MMD_LEDxH_CON_FIBER …
#define XWAY_MMD_LED0L …
#define XWAY_MMD_LEDxL_PULSE_MASK …
#define XWAY_MMD_LEDxL_PULSE_NONE …
#define XWAY_MMD_LEDxL_PULSE_TXACT …
#define XWAY_MMD_LEDxL_PULSE_RXACT …
#define XWAY_MMD_LEDxL_PULSE_COL …
#define XWAY_MMD_LEDxL_BLINKS_MASK …
#define XWAY_MMD_LEDxL_BLINKS_NONE …
#define XWAY_MMD_LEDxL_BLINKS_LINK10 …
#define XWAY_MMD_LEDxL_BLINKS_LINK100 …
#define XWAY_MMD_LEDxL_BLINKS_LINK10X …
#define XWAY_MMD_LEDxL_BLINKS_LINK1000 …
#define XWAY_MMD_LEDxL_BLINKS_LINK10_0 …
#define XWAY_MMD_LEDxL_BLINKS_LINK100X …
#define XWAY_MMD_LEDxL_BLINKS_LINK10XX …
#define XWAY_MMD_LEDxL_BLINKS_PDOWN …
#define XWAY_MMD_LEDxL_BLINKS_EEE …
#define XWAY_MMD_LEDxL_BLINKS_ANEG …
#define XWAY_MMD_LEDxL_BLINKS_ABIST …
#define XWAY_MMD_LEDxL_BLINKS_CDIAG …
#define XWAY_MMD_LED1H …
#define XWAY_MMD_LED1L …
#define XWAY_MMD_LED2H …
#define XWAY_MMD_LED2L …
#define XWAY_MMD_LED3H …
#define XWAY_MMD_LED3L …
#define PHY_ID_PHY11G_1_3 …
#define PHY_ID_PHY22F_1_3 …
#define PHY_ID_PHY11G_1_4 …
#define PHY_ID_PHY22F_1_4 …
#define PHY_ID_PHY11G_1_5 …
#define PHY_ID_PHY22F_1_5 …
#define PHY_ID_PHY11G_VR9_1_1 …
#define PHY_ID_PHY22F_VR9_1_1 …
#define PHY_ID_PHY11G_VR9_1_2 …
#define PHY_ID_PHY22F_VR9_1_2 …
static const int xway_internal_delay[] = …;
static int xway_gphy_rgmii_init(struct phy_device *phydev)
{ … }
static int xway_gphy_config_init(struct phy_device *phydev)
{ … }
static int xway_gphy14_config_aneg(struct phy_device *phydev)
{ … }
static int xway_gphy_ack_interrupt(struct phy_device *phydev)
{ … }
static int xway_gphy_config_intr(struct phy_device *phydev)
{ … }
static irqreturn_t xway_gphy_handle_interrupt(struct phy_device *phydev)
{ … }
static struct phy_driver xway_gphy[] = …;
module_phy_driver(xway_gphy);
static struct mdio_device_id __maybe_unused xway_gphy_tbl[] = …;
MODULE_DEVICE_TABLE(mdio, xway_gphy_tbl);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;