summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerge Semin <fancer.lancer@gmail.com>2023-07-04 14:25:20 +0300
committerSerge Semin <fancer.lancer@gmail.com>2026-08-13 20:37:49 +0300
commita4de026e4156d2a3c9e90db717dd0537fdd48e45 (patch)
tree40ed07d3af9402b688e7ceac4a134ce58a328707
parentc5a659e37630f5588f9b38cdc42660dccc6a53aa (diff)
downloadlinux-a4de026e4156d2a3c9e90db717dd0537fdd48e45.tar.gz
linux-a4de026e4156d2a3c9e90db717dd0537fdd48e45.zip
net: pcs: xpcs: Globalize CSR accessors
In order have the XPCS CSRs read, write, modify, poll and device soft-reset methods accessible from separate objects let's globally define them. They will be utilized from the PMA-config methods which in its turned will be later defined separately in order to simplify the main driver object file. Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
-rw-r--r--drivers/net/pcs/pcs-xpcs.c14
-rw-r--r--drivers/net/pcs/pcs-xpcs.h7
2 files changed, 13 insertions, 8 deletions
diff --git a/drivers/net/pcs/pcs-xpcs.c b/drivers/net/pcs/pcs-xpcs.c
index 2a07e893425b4..b035ba1ac48c2 100644
--- a/drivers/net/pcs/pcs-xpcs.c
+++ b/drivers/net/pcs/pcs-xpcs.c
@@ -234,19 +234,17 @@ int xpcs_modify(struct dw_xpcs *xpcs, int dev, u32 reg, u16 mask, u16 set)
return mdiodev_c45_modify(xpcs->mdiodev, dev, reg, mask, set);
}
-static int xpcs_modify_changed(struct dw_xpcs *xpcs, int dev, u32 reg,
- u16 mask, u16 set)
+int xpcs_modify_changed(struct dw_xpcs *xpcs, int dev, u32 reg, u16 mask, u16 set)
{
return mdiodev_c45_modify_changed(xpcs->mdiodev, dev, reg, mask, set);
}
-static int xpcs_read_vendor(struct dw_xpcs *xpcs, int dev, u32 reg)
+int xpcs_read_vendor(struct dw_xpcs *xpcs, int dev, u32 reg)
{
return xpcs_read(xpcs, dev, DW_VENDOR | reg);
}
-static int xpcs_write_vendor(struct dw_xpcs *xpcs, int dev, int reg,
- u16 val)
+int xpcs_write_vendor(struct dw_xpcs *xpcs, int dev, int reg, u16 val)
{
return xpcs_write(xpcs, dev, DW_VENDOR | reg, val);
}
@@ -272,7 +270,7 @@ static int xpcs_modify_vpcs(struct dw_xpcs *xpcs, int reg, u16 mask, u16 val)
return xpcs_modify_vendor(xpcs, MDIO_MMD_PCS, reg, mask, val);
}
-static int xpcs_poll_val(struct dw_xpcs *xpcs, int dev, int reg, u16 mask, u16 goal)
+int xpcs_poll_val(struct dw_xpcs *xpcs, int dev, int reg, u16 mask, u16 goal)
{
int ret, val;
@@ -309,12 +307,12 @@ static int __xpcs_soft_reset(struct dw_xpcs *xpcs, bool vendor)
return xpcs_poll_val(xpcs, dev, reg, BMCR_RESET, 0);
}
-static int xpcs_soft_reset(struct dw_xpcs *xpcs)
+int xpcs_soft_reset(struct dw_xpcs *xpcs)
{
return __xpcs_soft_reset(xpcs, false);
}
-static int xpcs_vendor_reset(struct dw_xpcs *xpcs)
+int xpcs_vendor_reset(struct dw_xpcs *xpcs)
{
return __xpcs_soft_reset(xpcs, true);
}
diff --git a/drivers/net/pcs/pcs-xpcs.h b/drivers/net/pcs/pcs-xpcs.h
index 7805881e391dd..f80de96fcf8c6 100644
--- a/drivers/net/pcs/pcs-xpcs.h
+++ b/drivers/net/pcs/pcs-xpcs.h
@@ -127,8 +127,15 @@ struct dw_xpcs {
int xpcs_read(struct dw_xpcs *xpcs, int dev, u32 reg);
int xpcs_write(struct dw_xpcs *xpcs, int dev, u32 reg, u16 val);
int xpcs_modify(struct dw_xpcs *xpcs, int dev, u32 reg, u16 mask, u16 set);
+int xpcs_modify_changed(struct dw_xpcs *xpcs, int dev, u32 reg, u16 mask, u16 set);
+int xpcs_read_vendor(struct dw_xpcs *xpcs, int dev, u32 reg);
+int xpcs_write_vendor(struct dw_xpcs *xpcs, int dev, int reg, u16 val);
int xpcs_read_vpcs(struct dw_xpcs *xpcs, int reg);
int xpcs_write_vpcs(struct dw_xpcs *xpcs, int reg, u16 val);
+int xpcs_poll_val(struct dw_xpcs *xpcs, int dev, int reg, u16 mask, u16 goal);
+int xpcs_soft_reset(struct dw_xpcs *xpcs);
+int xpcs_vendor_reset(struct dw_xpcs *xpcs);
+
int nxp_sja1105_sgmii_pma_config(struct dw_xpcs *xpcs);
int nxp_sja1110_sgmii_pma_config(struct dw_xpcs *xpcs);
int nxp_sja1110_2500basex_pma_config(struct dw_xpcs *xpcs);