Lines Matching +full:conf +full:- +full:mdio
1 // SPDX-License-Identifier: GPL-2.0+
33 /* IP101A/G - IP1001 */
40 #define IP101A_G_IRQ_CONF_STATUS 0x11 /* Conf Info IRQ & Status Reg */
50 /* The 32-pin IP101GR package can re-configure the mode of the RXER/INTR_32 pin
72 err = mdiobus_write(phydev->mdio.bus, 30, 0, 0x175c); in ip175c_config_init()
77 err = mdiobus_read(phydev->mdio.bus, 30, 0); in ip175c_config_init()
83 err = mdiobus_write(phydev->mdio.bus, 29, 31, 0x175c); in ip175c_config_init()
88 err = mdiobus_write(phydev->mdio.bus, 29, 22, 0x420); in ip175c_config_init()
94 err = mdiobus_write(phydev->mdio.bus, i, in ip175c_config_init()
101 err = mdiobus_read(phydev->mdio.bus, i, MII_BMCR); in ip175c_config_init()
108 if (phydev->mdio.addr != 4) { in ip175c_config_init()
109 phydev->state = PHY_RUNNING; in ip175c_config_init()
110 phydev->speed = SPEED_100; in ip175c_config_init()
111 phydev->duplex = DUPLEX_FULL; in ip175c_config_init()
112 phydev->link = 1; in ip175c_config_init()
113 netif_carrier_on(phydev->attached_dev); in ip175c_config_init()
166 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) in ip1001_config_init()
168 else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) in ip1001_config_init()
170 else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) in ip1001_config_init()
183 if (phydev->mdio.addr == 4) /* WAN port */ in ip175c_read_status()
187 phydev->irq = PHY_IGNORE_INTERRUPT; in ip175c_read_status()
194 if (phydev->mdio.addr == 4) /* WAN port */ in ip175c_config_aneg()
202 struct device *dev = &phydev->mdio.dev; in ip101a_g_probe()
207 return -ENOMEM; in ip101a_g_probe()
210 * pin on the 32-pin IP101GR, so this is an exclusive choice. in ip101a_g_probe()
212 if (device_property_read_bool(dev, "icplus,select-rx-error") && in ip101a_g_probe()
213 device_property_read_bool(dev, "icplus,select-interrupt")) { in ip101a_g_probe()
216 return -EINVAL; in ip101a_g_probe()
219 if (device_property_read_bool(dev, "icplus,select-rx-error")) in ip101a_g_probe()
220 priv->sel_intr32 = IP101GR_SEL_INTR32_RXER; in ip101a_g_probe()
221 else if (device_property_read_bool(dev, "icplus,select-interrupt")) in ip101a_g_probe()
222 priv->sel_intr32 = IP101GR_SEL_INTR32_INTR; in ip101a_g_probe()
224 priv->sel_intr32 = IP101GR_SEL_INTR32_KEEP; in ip101a_g_probe()
226 phydev->priv = priv; in ip101a_g_probe()
233 struct ip101a_g_phy_priv *priv = phydev->priv; in ip101a_g_config_init()
240 /* configure the RXER/INTR_32 pin of the 32-pin IP101GR if needed: */ in ip101a_g_config_init()
241 switch (priv->sel_intr32) { in ip101a_g_config_init()
261 * For the 32-pin IP101GR we simply keep the SEL_INTR32 in ip101a_g_config_init()
279 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in ip101a_g_config_intr()
351 MODULE_DEVICE_TABLE(mdio, icplus_tbl);