linux/drivers/net/ethernet/sfc/falcon/qt202x_phy.c

// SPDX-License-Identifier: GPL-2.0-only
/****************************************************************************
 * Driver for Solarflare network controllers and boards
 * Copyright 2006-2012 Solarflare Communications Inc.
 */
/*
 * Driver for AMCC QT202x SFP+ and XFP adapters; see www.amcc.com for details
 */

#include <linux/slab.h>
#include <linux/timer.h>
#include <linux/delay.h>
#include "efx.h"
#include "mdio_10g.h"
#include "phy.h"
#include "nic.h"

#define QT202X_REQUIRED_DEVS

#define QT202X_LOOPBACKS

/****************************************************************************/
/* Quake-specific MDIO registers */
#define MDIO_QUAKE_LED0_REG

/* QT2025C only */
#define PCS_FW_HEARTBEAT_REG
#define PCS_FW_HEARTB_LBN
#define PCS_FW_HEARTB_WIDTH
#define PCS_FW_PRODUCT_CODE_1
#define PCS_FW_VERSION_1
#define PCS_FW_BUILD_1
#define PCS_UC8051_STATUS_REG
#define PCS_UC_STATUS_LBN
#define PCS_UC_STATUS_WIDTH
#define PCS_UC_STATUS_FW_SAVE
#define PMA_PMD_MODE_REG
#define PMA_PMD_RXIN_SEL_LBN
#define PMA_PMD_FTX_CTRL2_REG
#define PMA_PMD_FTX_STATIC_LBN
#define PMA_PMD_VEND1_REG
#define PMA_PMD_VEND1_LBTXD_LBN
#define PCS_VEND1_REG
#define PCS_VEND1_LBTXD_LBN

void falcon_qt202x_set_led(struct ef4_nic *p, int led, int mode)
{}

struct qt202x_phy_data {};

#define QT2022C2_MAX_RESET_TIME
#define QT2022C2_RESET_WAIT

#define QT2025C_MAX_HEARTB_TIME
#define QT2025C_HEARTB_WAIT
#define QT2025C_MAX_FWSTART_TIME
#define QT2025C_FWSTART_WAIT

#define BUG17190_INTERVAL

static int qt2025c_wait_heartbeat(struct ef4_nic *efx)
{}

static int qt2025c_wait_fw_status_good(struct ef4_nic *efx)
{}

static void qt2025c_restart_firmware(struct ef4_nic *efx)
{}

static int qt2025c_wait_reset(struct ef4_nic *efx)
{}

static void qt2025c_firmware_id(struct ef4_nic *efx)
{}

static void qt2025c_bug17190_workaround(struct ef4_nic *efx)
{}

static int qt2025c_select_phy_mode(struct ef4_nic *efx)
{}

static int qt202x_reset_phy(struct ef4_nic *efx)
{}

static int qt202x_phy_probe(struct ef4_nic *efx)
{}

static int qt202x_phy_init(struct ef4_nic *efx)
{}

static int qt202x_link_ok(struct ef4_nic *efx)
{}

static bool qt202x_phy_poll(struct ef4_nic *efx)
{}

static int qt202x_phy_reconfigure(struct ef4_nic *efx)
{}

static void qt202x_phy_get_link_ksettings(struct ef4_nic *efx,
					  struct ethtool_link_ksettings *cmd)
{}

static void qt202x_phy_remove(struct ef4_nic *efx)
{}

static int qt202x_phy_get_module_info(struct ef4_nic *efx,
				      struct ethtool_modinfo *modinfo)
{}

static int qt202x_phy_get_module_eeprom(struct ef4_nic *efx,
					struct ethtool_eeprom *ee, u8 *data)
{}

const struct ef4_phy_operations falcon_qt202x_phy_ops =;