• Home
  • Raw
  • Download

Lines Matching +full:fiber +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0
101 /* SOR1 mode */
140 struct net_device *ndev = phydev->attached_dev; in dp83822_set_wol()
144 if (wol->wolopts & (WAKE_MAGIC | WAKE_MAGICSECURE)) { in dp83822_set_wol()
145 mac = (const u8 *)ndev->dev_addr; in dp83822_set_wol()
148 return -EINVAL; in dp83822_set_wol()
162 if (wol->wolopts & WAKE_MAGIC) in dp83822_set_wol()
167 if (wol->wolopts & WAKE_MAGICSECURE) { in dp83822_set_wol()
170 (wol->sopass[1] << 8) | wol->sopass[0]); in dp83822_set_wol()
173 (wol->sopass[3] << 8) | wol->sopass[2]); in dp83822_set_wol()
176 (wol->sopass[5] << 8) | wol->sopass[4]); in dp83822_set_wol()
202 wol->supported = (WAKE_MAGIC | WAKE_MAGICSECURE); in dp83822_get_wol()
203 wol->wolopts = 0; in dp83822_get_wol()
208 wol->wolopts |= WAKE_MAGIC; in dp83822_get_wol()
213 wol->sopass[0] = (sopass_val & 0xff); in dp83822_get_wol()
214 wol->sopass[1] = (sopass_val >> 8); in dp83822_get_wol()
218 wol->sopass[2] = (sopass_val & 0xff); in dp83822_get_wol()
219 wol->sopass[3] = (sopass_val >> 8); in dp83822_get_wol()
223 wol->sopass[4] = (sopass_val & 0xff); in dp83822_get_wol()
224 wol->sopass[5] = (sopass_val >> 8); in dp83822_get_wol()
226 wol->wolopts |= WAKE_MAGICSECURE; in dp83822_get_wol()
231 wol->wolopts = 0; in dp83822_get_wol()
236 struct dp83822_private *dp83822 = phydev->priv; in dp83822_config_intr()
241 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in dp83822_config_intr()
251 if (!dp83822 || !dp83822->fx_enabled) in dp83822_config_intr()
272 if (!dp83822 || !dp83822->fx_enabled) in dp83822_config_intr()
314 struct dp83822_private *dp83822 = phydev->priv; in dp83822_read_status()
319 if (dp83822->fx_enabled) { in dp83822_read_status()
321 phydev->speed = SPEED_UNKNOWN; in dp83822_read_status()
322 phydev->duplex = DUPLEX_UNKNOWN; in dp83822_read_status()
345 phydev->duplex = DUPLEX_FULL; in dp83822_read_status()
347 phydev->duplex = DUPLEX_HALF; in dp83822_read_status()
350 phydev->speed = SPEED_10; in dp83822_read_status()
352 phydev->speed = SPEED_100; in dp83822_read_status()
359 struct dp83822_private *dp83822 = phydev->priv; in dp83822_config_init()
360 struct device *dev = &phydev->mdio.dev; in dp83822_config_init()
391 if (dp83822->fx_enabled) { in dp83822_config_init()
398 linkmode_and(phydev->advertising, phydev->advertising, in dp83822_config_init()
399 phydev->supported); in dp83822_config_init()
402 phydev->supported); in dp83822_config_init()
404 phydev->advertising); in dp83822_config_init()
406 phydev->supported); in dp83822_config_init()
408 phydev->supported); in dp83822_config_init()
410 phydev->advertising); in dp83822_config_init()
412 phydev->advertising); in dp83822_config_init()
414 /* Auto neg is not supported in fiber mode */ in dp83822_config_init()
424 phydev->autoneg = AUTONEG_DISABLE; in dp83822_config_init()
426 phydev->supported); in dp83822_config_init()
428 phydev->advertising); in dp83822_config_init()
430 /* Setup fiber advertisement */ in dp83822_config_init()
438 if (dp83822->fx_signal_det_low) { in dp83822_config_init()
462 return phydev->drv->config_init(phydev); in dp83822_phy_reset()
468 struct dp83822_private *dp83822 = phydev->priv; in dp83822_of_init()
469 struct device *dev = &phydev->mdio.dev; in dp83822_of_init()
475 if (dp83822->fx_enabled && dp83822->fx_sd_enable) in dp83822_of_init()
476 dp83822->fx_signal_det_low = device_property_present(dev, in dp83822_of_init()
477 "ti,link-loss-low"); in dp83822_of_init()
478 if (!dp83822->fx_enabled) in dp83822_of_init()
479 dp83822->fx_enabled = device_property_present(dev, in dp83822_of_init()
480 "ti,fiber-mode"); in dp83822_of_init()
493 struct dp83822_private *dp83822 = phydev->priv; in dp83822_read_straps()
504 dp83822->fx_enabled = 1; in dp83822_read_straps()
506 if (dp83822->fx_enabled) { in dp83822_read_straps()
510 dp83822->fx_sd_enable = 1; in dp83822_read_straps()
521 dp83822 = devm_kzalloc(&phydev->mdio.dev, sizeof(*dp83822), in dp83822_probe()
524 return -ENOMEM; in dp83822_probe()
526 phydev->priv = dp83822; in dp83822_probe()
534 if (dp83822->fx_enabled) in dp83822_probe()
535 phydev->port = PORT_FIBRE; in dp83822_probe()