net: phy: microchip_t1: Enable pin out specific to lan887x phy for PEROUT signal
authorDivya Koppera <divya.koppera@microchip.com>
Wed, 15 Jan 2025 09:06:33 +0000 (14:36 +0530)
committerJakub Kicinski <kuba@kernel.org>
Fri, 17 Jan 2025 01:27:56 +0000 (17:27 -0800)
Adds support for enabling pin out that is required
to generate periodic output signal on lan887x phy.

Signed-off-by: Divya Koppera <divya.koppera@microchip.com>
Link: https://patch.msgid.link/20250115090634.12941-3-divya.koppera@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/microchip_t1.c

index 76e5b01832f38d6a260a59d45885bab1bd61cb5e..62b36a318100aec99c2f3f8bfc567f13dfe788d2 100644 (file)
 #define LAN887X_INT_MSK_LINK_UP_MSK            BIT(1)
 #define LAN887X_INT_MSK_LINK_DOWN_MSK          BIT(0)
 
+#define LAN887X_MX_CHIP_TOP_REG_CONTROL1       0xF002
+#define LAN887X_MX_CHIP_TOP_REG_CONTROL1_EVT_EN        BIT(8)
+
 #define LAN887X_MX_CHIP_TOP_LINK_MSK   (LAN887X_INT_MSK_LINK_UP_MSK |\
                                         LAN887X_INT_MSK_LINK_DOWN_MSK)
 
@@ -1286,6 +1289,15 @@ static int lan887x_phy_init(struct phy_device *phydev)
                if (IS_ERR(priv->clock))
                        return PTR_ERR(priv->clock);
 
+               /* Enable pin mux for EVT */
+               phy_modify_mmd(phydev, MDIO_MMD_VEND1,
+                              LAN887X_MX_CHIP_TOP_REG_CONTROL1,
+                              LAN887X_MX_CHIP_TOP_REG_CONTROL1_EVT_EN,
+                              LAN887X_MX_CHIP_TOP_REG_CONTROL1_EVT_EN);
+
+               /* Initialize pin numbers specific to PEROUT */
+               priv->clock->event_pin = 3;
+
                priv->init_done = true;
        }
 
@@ -2154,7 +2166,7 @@ static struct phy_driver microchip_t1_phy_driver[] = {
 
 module_phy_driver(microchip_t1_phy_driver);
 
-static const struct mdio_device_id __maybe_unused microchip_t1_tbl[] = {
+static struct mdio_device_id __maybe_unused microchip_t1_tbl[] = {
        { PHY_ID_MATCH_MODEL(PHY_ID_LAN87XX) },
        { PHY_ID_MATCH_MODEL(PHY_ID_LAN937X) },
        { PHY_ID_MATCH_MODEL(PHY_ID_LAN887X) },