Lines Matching +full:phy +full:- +full:is +full:- +full:integrated

1 // SPDX-License-Identifier: GPL-2.0+
4 * Copyright (C) 2016 Hauke Mehrtens <hauke@hauke-m.de>
9 #include <linux/phy.h>
22 #define XWAY_MDIO_LED_LED3_EN BIT(11) /* Enable the integrated function of LED3 */
23 #define XWAY_MDIO_LED_LED2_EN BIT(10) /* Enable the integrated function of LED2 */
24 #define XWAY_MDIO_LED_LED1_EN BIT(9) /* Enable the integrated function of LED1 */
25 #define XWAY_MDIO_LED_LED0_EN BIT(8) /* Enable the integrated function of LED0 */
32 #define XWAY_MDIO_INIT_WOL BIT(15) /* Wake-On-LAN */
36 #define XWAY_MDIO_INIT_ANE BIT(11) /* Auto-Neg error */
37 #define XWAY_MDIO_INIT_ANC BIT(10) /* Auto-Neg complete */
38 #define XWAY_MDIO_INIT_ADSC BIT(5) /* Link auto-downspeed detect */
47 #define ADVERTISED_MPD BIT(10) /* Multi-port device */
177 struct device *dev = &phydev->mdio.dev; in xway_gphy_rgmii_init()
189 if (phydev->interface == PHY_INTERFACE_MODE_RGMII) { in xway_gphy_rgmii_init()
201 "PHY has delays (e.g. via pin strapping), but phy-mode = 'rgmii'\n" in xway_gphy_rgmii_init()
202 "Should be 'rgmii-id' to use internal delays txskew:%d ps rxskew:%d ps\n", in xway_gphy_rgmii_init()
208 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID || in xway_gphy_rgmii_init()
209 phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) { in xway_gphy_rgmii_init()
214 /* if rx-internal-delay-ps is missing, use default of 2.0 ns */ in xway_gphy_rgmii_init()
221 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID || in xway_gphy_rgmii_init()
222 phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) { in xway_gphy_rgmii_init()
227 /* if tx-internal-delay-ps is missing, use default of 2.0 ns */ in xway_gphy_rgmii_init()
245 /* Ensure that integrated led function is enabled for all leds */ in xway_gphy_init_leds()
263 * In most cases only one LED is connected to this phy, so in xway_gphy_init_leds()
264 * configure them all to constant on and pulse mode. LED3 is in xway_gphy_init_leds()
283 struct device_node *np = phydev->mdio.dev.of_node; in xway_gphy_config_init()
309 /* Advertise as multi-port device, see IEEE802.3-2002 40.5.1.1 */ in xway_gphy14_config_aneg()
310 /* This is a workaround for an errata in rev < 1.5 devices */ in xway_gphy14_config_aneg()
333 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in xway_gphy_config_intr()
375 return -EINVAL; in xway_gphy_led_brightness_set()
408 return -EINVAL; in xway_gphy_led_hw_is_supported()
418 return -EOPNOTSUPP; in xway_gphy_led_hw_is_supported()
422 return -EOPNOTSUPP; in xway_gphy_led_hw_is_supported()
433 return -EINVAL; in xway_gphy_led_hw_control_get()
473 return -EINVAL; in xway_gphy_led_hw_control_set()
511 return -EINVAL; in xway_gphy_led_polarity_set()
522 return -EINVAL; in xway_gphy_led_polarity_set()
532 return -EINVAL; in xway_gphy_led_polarity_set()
633 .name = "Intel XWAY PHY11G (xRX v1.1 integrated)",
648 .name = "Intel XWAY PHY22F (xRX v1.1 integrated)",
663 .name = "Intel XWAY PHY11G (xRX v1.2 integrated)",
678 .name = "Intel XWAY PHY22F (xRX v1.2 integrated)",
709 MODULE_DESCRIPTION("Intel XWAY PHY driver");