aboutsummaryrefslogtreecommitdiff
path: root/include/linux/phy.h
diff options
context:
space:
mode:
authorGravatar Alexandru Tachici <alexandru.tachici@analog.com> 2022-04-29 18:34:34 +0300
committerGravatar David S. Miller <davem@davemloft.net> 2022-05-01 17:45:35 +0100
commit3da8ffd8545f62fec85a48a3c637b2f427974f11 (patch)
treed0e208fdba1caa67ee3d3371629f8fb685a90996 /include/linux/phy.h
parentnet: phy: Add BaseT1 auto-negotiation registers (diff)
downloadlinux-3da8ffd8545f62fec85a48a3c637b2f427974f11.tar.gz
linux-3da8ffd8545f62fec85a48a3c637b2f427974f11.tar.bz2
linux-3da8ffd8545f62fec85a48a3c637b2f427974f11.zip
net: phy: Add 10BASE-T1L support in phy-c45
This patch is needed because the BASE-T1 uses different registers for status, control and advertisement to those already employed in the existing phy-c45 functions. Where required, genphy_c45 functions will now check whether the device supports BASE-T1 and use the specific registers instead: 45.2.7.19 BASE-T1 AN control register, 45.2.7.20 BASE-T1 AN status, 45.2.7.21 BASE-T1 AN advertisement register, 45.2.7.22 BASE-T1 AN LP Base Page ability register, 45.2.1.185 BASE-T1 PMA/PMD control register. Tested-by: Oleksij Rempel <o.rempel@pengutronix.de> Signed-off-by: Alexandru Tachici <alexandru.tachici@analog.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/phy.h')
-rw-r--r--include/linux/phy.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h
index b12af9e2f389..2d12054932ba 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -570,6 +570,7 @@ struct macsec_ops;
* @autoneg_complete: Flag auto negotiation of the link has completed
* @mdix: Current crossover
* @mdix_ctrl: User setting of crossover
+ * @pma_extable: Cached value of PMA/PMD Extended Abilities Register
* @interrupts: Flag interrupts have been enabled
* @interface: enum phy_interface_t value
* @skb: Netlink message for cable diagnostics
@@ -698,6 +699,8 @@ struct phy_device {
u8 mdix;
u8 mdix_ctrl;
+ int pma_extable;
+
void (*phy_link_change)(struct phy_device *phydev, bool up);
void (*adjust_link)(struct net_device *dev);