The LAN865X integrates the PHY directly into the MAC-PHY SPI device. The PHY has no dedicated interrupt line; its interrupt is always delivered as the PHYINT bit in STATUS0. Pass the OA_TC6_PHY_INT quirk flag to oa_tc6_init() to enable the virtual IRQ infrastructure in the OA TC6 framework. This allows phylib to operate in interrupt mode and drives the PHY driver's config_intr/handle_interrupt callbacks for LAN865X internal PHY. Signed-off-by: Parthiban Veerasooran --- drivers/net/ethernet/microchip/lan865x/lan865x.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/microchip/lan865x/lan865x.c b/drivers/net/ethernet/microchip/lan865x/lan865x.c index 26a2761332a5..043a3dc3f965 100644 --- a/drivers/net/ethernet/microchip/lan865x/lan865x.c +++ b/drivers/net/ethernet/microchip/lan865x/lan865x.c @@ -332,6 +332,7 @@ static const struct net_device_ops lan865x_netdev_ops = { static int lan865x_probe(struct spi_device *spi) { + struct oa_tc6_quirks tc6_quirks = {}; struct net_device *netdev; struct lan865x_priv *priv; int ret; @@ -346,7 +347,8 @@ static int lan865x_probe(struct spi_device *spi) spi_set_drvdata(spi, priv); INIT_WORK(&priv->multicast_work, lan865x_multicast_work_handler); - priv->tc6 = oa_tc6_init(spi, netdev, NULL); + tc6_quirks.quirk_flags = OA_TC6_PHY_INT; + priv->tc6 = oa_tc6_init(spi, netdev, &tc6_quirks); if (!priv->tc6) { ret = -ENODEV; goto free_netdev; -- 2.43.0