• Home
  • Raw
  • Download

Lines Matching +full:pico +full:- +full:seconds

1 // SPDX-License-Identifier: GPL-2.0+
9 * Copyright (c) 2010-2013 Micrel, Inc.
160 const struct kszphy_type *type = phydev->drv->driver_data; in kszphy_config_intr()
164 if (type && type->interrupt_level_mask) in kszphy_config_intr()
165 mask = type->interrupt_level_mask; in kszphy_config_intr()
177 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in kszphy_config_intr()
213 return -EINVAL; in kszphy_setup_led()
233 * unique (non-broadcast) address on a shared bus.
274 struct kszphy_priv *priv = phydev->priv; in kszphy_config_reset()
277 if (priv->rmii_ref_clk_sel) { in kszphy_config_reset()
278 ret = kszphy_rmii_clk_sel(phydev, priv->rmii_ref_clk_sel_val); in kszphy_config_reset()
286 if (priv->led_mode >= 0) in kszphy_config_reset()
287 kszphy_setup_led(phydev, priv->type->led_mode_reg, priv->led_mode); in kszphy_config_reset()
294 struct kszphy_priv *priv = phydev->priv; in kszphy_config_init()
300 type = priv->type; in kszphy_config_init()
302 if (type->has_broadcast_disable) in kszphy_config_init()
305 if (type->has_nand_tree_disable) in kszphy_config_init()
313 struct device_node *of_node = phydev->mdio.dev.of_node; in ksz8041_fiber_mode()
315 return of_property_read_bool(of_node, "micrel,fiber-mode"); in ksz8041_fiber_mode()
324 phydev->dev_flags |= MICREL_PHY_FXEN; in ksz8041_config_init()
328 linkmode_and(phydev->supported, phydev->supported, mask); in ksz8041_config_init()
330 phydev->supported); in ksz8041_config_init()
331 linkmode_and(phydev->advertising, phydev->advertising, mask); in ksz8041_config_init()
333 phydev->advertising); in ksz8041_config_init()
334 phydev->autoneg = AUTONEG_DISABLE; in ksz8041_config_init()
342 /* Skip auto-negotiation in fiber mode */ in ksz8041_config_aneg()
343 if (phydev->dev_flags & MICREL_PHY_FXEN) { in ksz8041_config_aneg()
344 phydev->speed = SPEED_100; in ksz8041_config_aneg()
356 if ((phydev->phy_id & MICREL_PHY_ID_MASK) != PHY_ID_KSZ8051) in ksz8051_ksz8795_match_phy_device()
382 /* KSZPHY_OMSO_FACTORY_TEST is set at de-assertion of the reset line in ksz8081_config_init()
384 * pull-down is missing, the factory test mode should be cleared by in ksz8081_config_init()
414 int val1 = -1; in ksz9021_load_values_from_of()
415 int val2 = -2; in ksz9021_load_values_from_of()
416 int val3 = -3; in ksz9021_load_values_from_of()
417 int val4 = -4; in ksz9021_load_values_from_of()
441 if (val1 != -1) in ksz9021_load_values_from_of()
444 if (val2 != -2) in ksz9021_load_values_from_of()
447 if (val3 != -3) in ksz9021_load_values_from_of()
450 if (val4 != -4) in ksz9021_load_values_from_of()
458 const struct device *dev = &phydev->mdio.dev; in ksz9021_config_init()
459 const struct device_node *of_node = dev->of_node; in ksz9021_config_init()
466 dev_walker = &phydev->mdio.dev; in ksz9021_config_init()
468 of_node = dev_walker->of_node; in ksz9021_config_init()
469 dev_walker = dev_walker->parent; in ksz9021_config_init()
476 "txen-skew-ps", "txc-skew-ps", in ksz9021_config_init()
477 "rxdv-skew-ps", "rxc-skew-ps"); in ksz9021_config_init()
480 "rxd0-skew-ps", "rxd1-skew-ps", in ksz9021_config_init()
481 "rxd2-skew-ps", "rxd3-skew-ps"); in ksz9021_config_init()
484 "txd0-skew-ps", "txd1-skew-ps", in ksz9021_config_init()
485 "txd2-skew-ps", "txd3-skew-ps"); in ksz9021_config_init()
528 /* set rx to +0.30ns and rx_clk to -0.90ns to compensate the
534 /* set tx to -0.42ns and tx_clk to +0.96ns to get 1.38ns delay */
554 int val[4] = {-1, -2, -3, -4}; in ksz9031_of_load_skew_values()
577 if (val[i] != -(i + 1)) { in ksz9031_of_load_skew_values()
606 /* Enable energy-detect power-down mode */
623 switch (phydev->interface) { in ksz9031_config_rgmii_delay()
681 const struct device *dev = &phydev->mdio.dev; in ksz9031_config_init()
682 const struct device_node *of_node = dev->of_node; in ksz9031_config_init()
683 static const char *clk_skews[2] = {"rxc-skew-ps", "txc-skew-ps"}; in ksz9031_config_init()
685 "rxd0-skew-ps", "rxd1-skew-ps", in ksz9031_config_init()
686 "rxd2-skew-ps", "rxd3-skew-ps" in ksz9031_config_init()
689 "txd0-skew-ps", "txd1-skew-ps", in ksz9031_config_init()
690 "txd2-skew-ps", "txd3-skew-ps" in ksz9031_config_init()
692 static const char *control_skews[2] = {"txen-skew-ps", "rxdv-skew-ps"}; in ksz9031_config_init()
704 dev_walker = &phydev->mdio.dev; in ksz9031_config_init()
706 of_node = dev_walker->of_node; in ksz9031_config_init()
707 dev_walker = dev_walker->parent; in ksz9031_config_init()
737 "*-skew-ps values should be used only with RGMII PHY modes\n"); in ksz9031_config_init()
740 * When the device links in the 1000BASE-T slave mode only, in ksz9031_config_init()
754 if (of_property_read_bool(of_node, "micrel,force-master")) { in ksz9031_config_init()
784 int val[4] = {-(1 + KSZ9131_OFFSET), -(2 + KSZ9131_OFFSET), in ksz9131_of_load_skew_values()
785 -(3 + KSZ9131_OFFSET), -(4 + KSZ9131_OFFSET)}; in ksz9131_of_load_skew_values()
793 /* psec properties in dts should mean x pico seconds */ in ksz9131_of_load_skew_values()
801 if (skewval < -KSZ9131_OFFSET) in ksz9131_of_load_skew_values()
802 skewval = -KSZ9131_OFFSET; in ksz9131_of_load_skew_values()
820 if (val[i] != -(i + 1 + KSZ9131_OFFSET)) { in ksz9131_of_load_skew_values()
843 switch (phydev->interface) { in ksz9131_config_rgmii_delay()
877 const struct device *dev = &phydev->mdio.dev; in ksz9131_config_init()
878 struct device_node *of_node = dev->of_node; in ksz9131_config_init()
879 char *clk_skews[2] = {"rxc-skew-psec", "txc-skew-psec"}; in ksz9131_config_init()
881 "rxd0-skew-psec", "rxd1-skew-psec", in ksz9131_config_init()
882 "rxd2-skew-psec", "rxd3-skew-psec" in ksz9131_config_init()
885 "txd0-skew-psec", "txd1-skew-psec", in ksz9131_config_init()
886 "txd2-skew-psec", "txd3-skew-psec" in ksz9131_config_init()
888 char *control_skews[2] = {"txen-skew-psec", "rxdv-skew-psec"}; in ksz9131_config_init()
892 dev_walker = &phydev->mdio.dev; in ksz9131_config_init()
894 of_node = dev_walker->of_node; in ksz9131_config_init()
895 dev_walker = dev_walker->parent; in ksz9131_config_init()
947 phydev->duplex = DUPLEX_HALF; in ksz8873mll_read_status()
949 phydev->duplex = DUPLEX_FULL; in ksz8873mll_read_status()
952 phydev->speed = SPEED_10; in ksz8873mll_read_status()
954 phydev->speed = SPEED_100; in ksz8873mll_read_status()
956 phydev->link = 1; in ksz8873mll_read_status()
957 phydev->pause = phydev->asym_pause = 0; in ksz8873mll_read_status()
972 * link-up may fail after a link-up to link-down transition. in ksz9031_get_features()
979 linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, phydev->supported); in ksz9031_get_features()
984 linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->supported); in ksz9031_get_features()
1004 phydev->link = 0; in ksz9031_read_status()
1005 if (phydev->drv->config_intr && phy_interrupt_is_valid(phydev)) in ksz9031_read_status()
1006 phydev->drv->config_intr(phydev); in ksz9031_read_status()
1036 struct kszphy_priv *priv = phydev->priv; in kszphy_get_stat()
1044 val = val & ((1 << stat.bits) - 1); in kszphy_get_stat()
1045 priv->stats[i] += val; in kszphy_get_stat()
1046 ret = priv->stats[i]; in kszphy_get_stat()
1065 phydev->interrupts = PHY_INTERRUPT_DISABLED; in kszphy_suspend()
1066 if (phydev->drv->config_intr) in kszphy_suspend()
1067 phydev->drv->config_intr(phydev); in kszphy_suspend()
1079 /* After switching from power-down to normal mode, an internal global in kszphy_resume()
1091 phydev->interrupts = PHY_INTERRUPT_ENABLED; in kszphy_resume()
1092 if (phydev->drv->config_intr) in kszphy_resume()
1093 phydev->drv->config_intr(phydev); in kszphy_resume()
1101 const struct kszphy_type *type = phydev->drv->driver_data; in kszphy_probe()
1102 const struct device_node *np = phydev->mdio.dev.of_node; in kszphy_probe()
1107 priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL); in kszphy_probe()
1109 return -ENOMEM; in kszphy_probe()
1111 phydev->priv = priv; in kszphy_probe()
1113 priv->type = type; in kszphy_probe()
1115 if (type->led_mode_reg) { in kszphy_probe()
1116 ret = of_property_read_u32(np, "micrel,led-mode", in kszphy_probe()
1117 &priv->led_mode); in kszphy_probe()
1119 priv->led_mode = -1; in kszphy_probe()
1121 if (priv->led_mode > 3) { in kszphy_probe()
1123 priv->led_mode); in kszphy_probe()
1124 priv->led_mode = -1; in kszphy_probe()
1127 priv->led_mode = -1; in kszphy_probe()
1130 clk = devm_clk_get(&phydev->mdio.dev, "rmii-ref"); in kszphy_probe()
1136 priv->rmii_ref_clk_sel = type->has_rmii_ref_clk_sel; in kszphy_probe()
1138 "micrel,rmii-reference-clock-select-25-mhz"); in kszphy_probe()
1141 priv->rmii_ref_clk_sel_val = rmii_ref_clk_sel_25_mhz; in kszphy_probe()
1143 priv->rmii_ref_clk_sel_val = !rmii_ref_clk_sel_25_mhz; in kszphy_probe()
1147 return -EINVAL; in kszphy_probe()
1152 phydev->port = PORT_FIBRE; in kszphy_probe()
1154 /* Support legacy board-file configuration */ in kszphy_probe()
1155 if (phydev->dev_flags & MICREL_PHY_50MHZ_CLK) { in kszphy_probe()
1156 priv->rmii_ref_clk_sel = true; in kszphy_probe()
1157 priv->rmii_ref_clk_sel_val = true; in kszphy_probe()