Commit 5483cbfd authored by Oleksij Rempel's avatar Oleksij Rempel Committed by David S. Miller
Browse files

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: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Acked-by: default avatarArun Ramadoss <arun.ramadoss@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3abbd7ed
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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)
+4 −2
Original line number Diff line number Diff line
@@ -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;
	}
}