xref: /aosp_15_r20/external/ethtool/lan743x.c (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1 // SPDX-License-Identifier: GPL-2.0+
2 /* Copyright (c) 2022 Microchip Technology Inc. and its subsidiaries. */
3 
4 #include <stdio.h>
5 #include <string.h>
6 #include "internal.h"
7 
8 #define LAN743X_ETH_REG_VERSION		1
9 
10 enum {
11 	ETH_PRIV_FLAGS,
12 	ETH_ID_REV,
13 	ETH_FPGA_REV,
14 	ETH_STRAP_READ,
15 	ETH_INT_STS,
16 	ETH_HW_CFG,
17 	ETH_PMT_CTL,
18 	ETH_E2P_CMD,
19 	ETH_E2P_DATA,
20 	ETH_MAC_CR,
21 	ETH_MAC_RX,
22 	ETH_MAC_TX,
23 	ETH_FLOW,
24 	ETH_MII_ACC,
25 	ETH_MII_DATA,
26 	ETH_EEE_TX_LPI_REQ_DLY,
27 	ETH_WUCSR,
28 	ETH_WK_SRC,
29 
30 	/* Add new registers above */
31 	MAX_LAN743X_ETH_REGS
32 };
33 
lan743x_comm_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)34 void lan743x_comm_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
35 			    struct ethtool_regs *regs)
36 {
37 	u32 *lan743x_reg = (u32 *)regs->data;
38 
39 	fprintf(stdout, "LAN743x Registers:\n");
40 	fprintf(stdout, "------------------\n");
41 	fprintf(stdout, "CHIP_ID_REV  = 0x%08X\n", lan743x_reg[ETH_ID_REV]);
42 	fprintf(stdout, "FPGA_REV     = 0x%08X\n", lan743x_reg[ETH_FPGA_REV]);
43 	fprintf(stdout, "STRAP_READ   = 0x%08X\n", lan743x_reg[ETH_STRAP_READ]);
44 	fprintf(stdout, "INT_STS      = 0x%08X\n", lan743x_reg[ETH_INT_STS]);
45 	fprintf(stdout, "HW_CFG       = 0x%08X\n", lan743x_reg[ETH_HW_CFG]);
46 	fprintf(stdout, "PMT_CTRL     = 0x%08X\n", lan743x_reg[ETH_PMT_CTL]);
47 	fprintf(stdout, "E2P_CMD      = 0x%08X\n", lan743x_reg[ETH_E2P_CMD]);
48 	fprintf(stdout, "E2P_DATA     = 0x%08X\n", lan743x_reg[ETH_E2P_DATA]);
49 	fprintf(stdout, "\n");
50 
51 	fprintf(stdout, "MAC Registers:\n");
52 	fprintf(stdout, "--------------\n");
53 	fprintf(stdout, "MAC_CR       = 0x%08X\n", lan743x_reg[ETH_MAC_CR]);
54 	fprintf(stdout, "MAC_RX       = 0x%08X\n", lan743x_reg[ETH_MAC_RX]);
55 	fprintf(stdout, "MAC_TX       = 0x%08X\n", lan743x_reg[ETH_MAC_TX]);
56 	fprintf(stdout, "FLOW         = 0x%08X\n", lan743x_reg[ETH_FLOW]);
57 	fprintf(stdout, "MII_ACC      = 0x%08X\n", lan743x_reg[ETH_MII_ACC]);
58 	fprintf(stdout, "MII_DATA     = 0x%08X\n", lan743x_reg[ETH_MII_DATA]);
59 	fprintf(stdout, "WUCSR        = 0x%08X\n", lan743x_reg[ETH_WUCSR]);
60 	fprintf(stdout, "WK_SRC       = 0x%08X\n", lan743x_reg[ETH_WK_SRC]);
61 	fprintf(stdout, "EEE_TX_LPI_REQ_DLY = 0x%08X\n",
62 					lan743x_reg[ETH_EEE_TX_LPI_REQ_DLY]);
63 	fprintf(stdout, "\n");
64 }
65 
lan743x_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)66 int lan743x_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
67 		      struct ethtool_regs *regs)
68 {
69 
70 	lan743x_comm_dump_regs(info, regs);
71 
72 	return 0;
73 }
74