blob: f430ee8a7707e9f1d75e21bb951219bb0dab925f [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0+
/* Copyright (c) 2022 Microchip Technology Inc. and its subsidiaries. */
#include <stdio.h>
#include <string.h>
#include "internal.h"
#define LAN743X_ETH_REG_VERSION 1
enum {
ETH_PRIV_FLAGS,
ETH_ID_REV,
ETH_FPGA_REV,
ETH_STRAP_READ,
ETH_INT_STS,
ETH_HW_CFG,
ETH_PMT_CTL,
ETH_E2P_CMD,
ETH_E2P_DATA,
ETH_MAC_CR,
ETH_MAC_RX,
ETH_MAC_TX,
ETH_FLOW,
ETH_MII_ACC,
ETH_MII_DATA,
ETH_EEE_TX_LPI_REQ_DLY,
ETH_WUCSR,
ETH_WK_SRC,
/* Add new registers above */
MAX_LAN743X_ETH_REGS
};
void lan743x_comm_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
struct ethtool_regs *regs)
{
u32 *lan743x_reg = (u32 *)regs->data;
fprintf(stdout, "LAN743x Registers:\n");
fprintf(stdout, "------------------\n");
fprintf(stdout, "CHIP_ID_REV = 0x%08X\n", lan743x_reg[ETH_ID_REV]);
fprintf(stdout, "FPGA_REV = 0x%08X\n", lan743x_reg[ETH_FPGA_REV]);
fprintf(stdout, "STRAP_READ = 0x%08X\n", lan743x_reg[ETH_STRAP_READ]);
fprintf(stdout, "INT_STS = 0x%08X\n", lan743x_reg[ETH_INT_STS]);
fprintf(stdout, "HW_CFG = 0x%08X\n", lan743x_reg[ETH_HW_CFG]);
fprintf(stdout, "PMT_CTRL = 0x%08X\n", lan743x_reg[ETH_PMT_CTL]);
fprintf(stdout, "E2P_CMD = 0x%08X\n", lan743x_reg[ETH_E2P_CMD]);
fprintf(stdout, "E2P_DATA = 0x%08X\n", lan743x_reg[ETH_E2P_DATA]);
fprintf(stdout, "\n");
fprintf(stdout, "MAC Registers:\n");
fprintf(stdout, "--------------\n");
fprintf(stdout, "MAC_CR = 0x%08X\n", lan743x_reg[ETH_MAC_CR]);
fprintf(stdout, "MAC_RX = 0x%08X\n", lan743x_reg[ETH_MAC_RX]);
fprintf(stdout, "MAC_TX = 0x%08X\n", lan743x_reg[ETH_MAC_TX]);
fprintf(stdout, "FLOW = 0x%08X\n", lan743x_reg[ETH_FLOW]);
fprintf(stdout, "MII_ACC = 0x%08X\n", lan743x_reg[ETH_MII_ACC]);
fprintf(stdout, "MII_DATA = 0x%08X\n", lan743x_reg[ETH_MII_DATA]);
fprintf(stdout, "WUCSR = 0x%08X\n", lan743x_reg[ETH_WUCSR]);
fprintf(stdout, "WK_SRC = 0x%08X\n", lan743x_reg[ETH_WK_SRC]);
fprintf(stdout, "EEE_TX_LPI_REQ_DLY = 0x%08X\n",
lan743x_reg[ETH_EEE_TX_LPI_REQ_DLY]);
fprintf(stdout, "\n");
}
int lan743x_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
struct ethtool_regs *regs)
{
lan743x_comm_dump_regs(info, regs);
return 0;
}