16 Jan, 2018

1 commit

  • Add a minimalistic Broadcom BCM53xx (roboswitch) switch driver similar
    to the Marvell MV88E617x. This takes care of configuring the minimum
    amount out of the switch hardware such that each user visible port
    (configurable) and the CPU port can forward packets between each other
    while preserving isolation with other ports.

    This is useful for e.g: the Lamobo R1 board featuring a Broadcom
    BCM53125 switch.

    Reviewed-by: Stefan Roese
    Signed-off-by: Florian Fainelli

    Florian Fainelli
     

17 Nov, 2017

1 commit


08 Aug, 2017

1 commit

  • The KS8721BL and KSZ9021 PHYs are software-incompatible, yet they
    share the same ID. Drivers for bothe PHYs cannot safely coexist, so
    the solution was to use #ifdefs to select between the two drivers.

    As a result KSZ9031, which has a unique ID, is now caught in the
    crossfire. Unless CONFIG_PHY_MICREL_KSZ9031 is defined, the KSZ9031
    will not function properly, as some essential configuration code is
    ifdef'd-out.

    To prevent such situations, move the KSZ9000 drivers to a separate
    file, and place them under a separate Kconfig option. While it is
    possible to enable both KSZ8000 and KSZ9000 drivers at the same time,
    the assumption is that it is highly unlikely for a system to contain
    both a KSZ8000 and a KSZ9000 PHY, and that only one of the drivers
    will be enabled at any given time.

    Signed-off-by: Alexandru Gagniuc
    Reviewed-by: Philipp Tomsich
    Acked-by: Joe Hershberger

    Alexandru Gagniuc
     

04 Apr, 2017

1 commit


29 Mar, 2017

1 commit


26 Mar, 2017

1 commit

  • This patch adds support for having a "fixed-link" to some other MAC
    (like some embedded switch-device).

    For this purpose we introduce a new phy-driver, called "Fixed PHY".

    Fixed PHY works only with CONFIG_DM_ETH enabled, since the fixed-link is
    described with a subnode below ethernet interface.

    Most ethernet drivers (unfortunately not all are following same scheme
    for searching/attaching phys) are calling "phy_connect(...)" for getting
    a phy-device.
    At this point we link in, we search here for a subnode called "fixed-
    link", once found we start phy_device_create(...) with the special phy-
    id PHY_FIXED_ID (0xa5a55a5a).

    During init the "Fixed PHY" driver has registered with this id and now
    gets probed, during probe we get all the details about fixed-link out of
    dts, later on the phy reports this values.

    Signed-off-by: Hannes Schmelzer

    Signed-off-by: Hannes Schmelzer
    Acked-by: Joe Hershberger
    Reviewed-by: Christian Gmeiner

    Hannes Schmelzer
     

09 Feb, 2017

1 commit


25 May, 2016

3 commits

  • Add a helper to phy.h to identify whether the
    phy is configured for SGMII all variables.

    Signed-off-by: Dan Murphy
    Reviewed-by: Mugunthan V N
    Reviewed-by: Michal Simek
    Tested-by: Mugunthan V N
    Acked-by: Joe Hershberger

    Dan Murphy
     
  • Move the phy_interface_is_rgmii to the phy.h
    file for all phy's to be able to use the API.

    This now aligns with the Linux kernel based on
    commit e463d88c36d42211aa72ed76d32fb8bf37820ef1

    Signed-off-by: Dan Murphy
    Reviewed-by: Mugunthan V N
    Reviewed-by: Michal Simek
    Tested-by: Mugunthan V N
    Acked-by: Joe Hershberger

    Dan Murphy
     
  • The previous mv88e61xx driver was a driver for configuring the
    switch, but did not integrate with the PHY/networking system, so
    it could not be used as a PHY by U-boot. This is a complete
    rework to support this device as a PHY.

    Signed-off-by: Kevin Smith
    Acked-by: Prafulla Wadaskar
    Cc: Albert ARIBAUD
    Cc: Joe Hershberger
    Cc: Stefan Roese
    Cc: Marek Vasut
    Acked-by: Joe Hershberger

    Kevin Smith
     

05 Apr, 2016

1 commit


29 Jan, 2016

3 commits

  • Current driver always performs a phy soft reset when connecting the phy
    device, but soft reset is not always supported by a phy device, so
    introduce a quirk PHY_FLAG_BROKEN_RESET to let such a phy device to skip
    soft reset. This commit uses 'flags' of phy device structure to store the
    quirk.

    Signed-off-by: Shaohui Xie
    Acked-by: Joe Hershberger

    Shaohui Xie
     
  • This new function will allow MAC drivers to override supported
    capabilities of the phy. It is required when MAC cannot handle all
    speeds supported by phy.

    For example phy supports up-to 1Gb connections while MAC may only work
    in modes up to 100 or even 10 Mbit/sec.

    Signed-off-by: Alexey Brodkin
    Cc: Joe Hershberger
    Acked-by: Joe Hershberger

    Alexey Brodkin
     
  • Breakdown the PHY_*_FEATURES into per speed defines such that we can
    easily re-use them individually.

    Signed-off-by: Florian Fainelli
    Signed-off-by: Alexey Brodkin
    Cc: Joe Hershberger
    Acked-by: Joe Hershberger

    Florian Fainelli
     

19 Nov, 2015

1 commit


21 Apr, 2015

1 commit

  • commit 3c6928fd7b0f84 "net: phy: fix warnings with W=1" caused
    some PHYs(e.g. CS4315/CS4340) not working. This patch fixes the
    warning and make those special PHYs working as well.

    Signed-off-by: Shengzhou Liu

    Shengzhou Liu
     

19 Apr, 2015

1 commit

  • When driver model is used for Ethernet a few functions are passed a udevice
    instead of an eth_device. Also add a function to find a PHY type given its
    name. This will be used to decode the device tree node.

    Finally, put a phy_interface field in struct eth_pdata since this is an
    important part of the platform data for Ethernet.

    Signed-off-by: Simon Glass
    Acked-by: Joe Hershberger

    Simon Glass
     

17 Jan, 2015

1 commit


06 Dec, 2014

1 commit

  • Add support for Cortina CS4315/CS4340 10G PHY.
    - This driver loads CS43xx firmware from NOR/NAND/SPI/SD device
    to initialize Cortina PHY.
    - Cortina PHY has non-standard offset of PHY ID registers, thus
    we define own get_phy_id() to override default get_phy_id().
    - To define macro CONFIG_PHY_CORTINA will enable this driver.

    Signed-off-by: Shengzhou Liu
    Reviewed-by: York Sun

    Shengzhou Liu
     

20 Nov, 2014

1 commit

  • As auto-negotiation is not supported for 2.5G SGMII, we need
    to add a new type PHY_INTERFACE_MODE_SGMII_2500 to differentiate
    SGMII-1G and SGMII-2.5G with different setting for auto-negotiation.

    Signed-off-by: Shaohui Xie
    Signed-off-by: Shengzhou Liu
    Reviewed-by: York Sun

    Shengzhou Liu
     

23 Oct, 2014

1 commit


06 Aug, 2014

1 commit


05 Mar, 2014

1 commit

  • Add a prototype for board_phy_config() to fix the following sparse warning:

    wandboard.c:200:5: warning: symbol 'board_phy_config' was not declared. Should it be static?

    Cc: Joe Hershberger
    Signed-off-by: Fabio Estevam

    Fabio Estevam
     

02 Dec, 2013

1 commit


23 Nov, 2013

2 commits


24 Jul, 2013

1 commit


25 Jun, 2013

1 commit


30 May, 2013

1 commit


15 May, 2013

1 commit

  • The VSC8574 is a quad-port Gigabit Ethernet transceiver with four SerDes
    interfaces for quad-port dual media capability. This driver supports SGMII
    and QSGMII MAC mode. For now SGMII mode is tested.

    Signed-off-by: Roy Zang
    Signed-off-by: Shaohui Xie
    Signed-off-by: Andy Fleming

    Shaohui Xie
     

10 May, 2013

1 commit

  • Adds an ET1011C PHY driver which is derived from the
    Linux kernel PHY driver (drivers/net/phy/et1011c.c)
    from the v3.9-rc2 tag. Note that an errata workaround
    config option is implemented to allow for TX_CLK to be
    enabled even when gigabit mode is negotiated. This
    workaround is used on the PG1.0 TI814X EVM.

    Signed-off-by: Matt Porter
    Reviewed-by: Tom Rini

    Matt Porter
     

28 Jan, 2013

1 commit

  • It is useful to be able to try a range of
    possible phy addresses to connect.

    Also, an ethernet device is not required
    to use phy_find_by_mask leading to better
    separation of mii vs ethernet, as suggested
    by Andy Fleming.

    Signed-off-by: Troy Kisky

    Troy Kisky
     

28 Feb, 2012

1 commit

  • Add the gigabit phy KSZ9021.
    Also, add function ksz9021_phy_extended_write
    /_read for access to the phys extended registers.
    The environment variable "disable_giga"
    can be used to disable 1000baseTx.

    Signed-off-by: Troy Kisky
    Acked-by: Dirk Behme

    Troy Kisky
     

05 Jan, 2012

1 commit


21 Oct, 2011

1 commit


21 Apr, 2011

2 commits

  • The tsec driver had a bunch of PHY drivers already written. This
    converts them all into PHY Lib drivers, and serves as the first
    set of PHY drivers for PHY Lib.

    While doing that, cleaned up a number of magic numbers (though
    not all of them, as PHY vendors like to keep their numbers as
    magical as possible). Also, noticed that almost all of the
    vitesse/cicada PHYs had the same config/parse/startup functions,
    so those have been collapsed into one.

    Signed-off-by: Andy Fleming
    Signed-off-by: Kumar Gala
    Acked-by: Detlev Zundel

    Andy Fleming
     
  • Extends the mii_dev structure to participate in a full-blown MDIO and
    PHY driver scheme. The mii_dev structure and miiphy calls are modified
    in such a way to allow the original mii command and miiphy
    infrastructure to work as before, but also to support a new set of APIs
    which allow (among other things) sharing of PHY driver code and 10G support

    The mii command will continue to support normal PHY management functions
    (Clause 22 of 802.3), but will not be changed to support 10G
    (Clause 45).

    The basic design is similar to PHY Lib from Linux, but simplified for
    U-Boot's network and driver infrastructure.

    We now have MDIO drivers and PHY drivers

    An MDIO driver provides:
    read
    write
    reset

    A PHY driver provides:
    (optionally): probe
    config - initial setup, starting of auto-negotiation
    startup - waiting for AN, and reading link state
    shutdown - any cleanup needed

    The ethernet drivers interact with the PHY Lib using these functions:
    phy_connect()
    phy_config()
    phy_startup()
    phy_shutdown()

    Each PHY driver can be configured separately, or all at once using
    config_phylib_all_drivers.h (added in the patch which adds the drivers)

    We also provide generic drivers for Clause 22 (10/100/1000), and
    Clause 45 (10G) PHYs.

    We also implement phy_reset(), and call it in phy_connect(). Because
    phy_reset() is essentially the same as miiphy_reset, but:
    a) must support 10G PHYs, and
    b) should use the phylib primitives,

    we implement miiphy_reset, using phy_reset(), but only when
    CONFIG_PHYLIB is set. Otherwise, we just use the old version. In this
    way, we save on compile size, even if we don't manage to save code size.

    Pulled ethtool.h and mdio.h from:
    git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
    782d640afd15af7a1faf01cfe566ca4ac511319d
    With many, many deletions so as to enable compilation under u-boot

    Signed-off-by: Andy Fleming
    Signed-off-by: Kumar Gala
    Acked-by: Detlev Zundel

    Andy Fleming