mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
net: dsa: microchip: lan9371/2: update MAC capabilities for port 4
Set proper MAC capabilities for port 4 on LAN9371 and LAN9372 switches with integrated 100BaseTX PHY. And introduce the is_lan937x_tx_phy() function to reuse it where applicable. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3abbd7ed8b
commit
5483cbfd86
@ -638,6 +638,12 @@ static inline int is_lan937x(struct ksz_device *dev)
|
||||
dev->chip_id == LAN9374_CHIP_ID;
|
||||
}
|
||||
|
||||
static inline bool is_lan937x_tx_phy(struct ksz_device *dev, int port)
|
||||
{
|
||||
return (dev->chip_id == LAN9371_CHIP_ID ||
|
||||
dev->chip_id == LAN9372_CHIP_ID) && port == KSZ_PORT_4;
|
||||
}
|
||||
|
||||
/* STP State Defines */
|
||||
#define PORT_TX_ENABLE BIT(2)
|
||||
#define PORT_RX_ENABLE BIT(1)
|
||||
|
@ -55,8 +55,7 @@ static int lan937x_vphy_ind_addr_wr(struct ksz_device *dev, int addr, int reg)
|
||||
u16 addr_base = REG_PORT_T1_PHY_CTRL_BASE;
|
||||
u16 temp;
|
||||
|
||||
if ((dev->info->chip_id == LAN9371_CHIP_ID ||
|
||||
dev->info->chip_id == LAN9372_CHIP_ID) && addr == KSZ_PORT_4)
|
||||
if (is_lan937x_tx_phy(dev, addr))
|
||||
addr_base = REG_PORT_TX_PHY_CTRL_BASE;
|
||||
|
||||
/* get register address based on the logical port */
|
||||
@ -324,6 +323,9 @@ void lan937x_phylink_get_caps(struct ksz_device *dev, int port,
|
||||
/* MII/RMII/RGMII ports */
|
||||
config->mac_capabilities |= MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
|
||||
MAC_100HD | MAC_10 | MAC_1000FD;
|
||||
} else if (is_lan937x_tx_phy(dev, port)) {
|
||||
config->mac_capabilities |= MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
|
||||
MAC_100HD | MAC_10;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user