mbox series

[v2,0/2] net: phy: mscc: Improvements to VSC8514 PHY driver

Message ID 20190328053251.9711-1-kavyasree.kotagiri@microchip.com
Headers show
Series net: phy: mscc: Improvements to VSC8514 PHY driver | expand

Message

Kavyasree Kotagiri March 28, 2019, 5:33 a.m. UTC
The VSC8514 PHY is a 4-ports PHY that is 10/100/1000BASE-T, 100BASE-FX,
    1000BASE-X, can communicate with the MAC via QSGMII.
    The MAC interface protocol for each port within QSGMII can
    be either 1000BASE-X or SGMII, if the QSGMII MAC that the VSC8514 is
    connecting to supports this functionality.
    VSC8514 also supports SGMII MAC-side autonegotiation on each individual
    port, downshifting, can set the blinking pattern of each of its 4 LEDs,
    SyncE, 1000BASE-T Ring Resiliency as well as HP Auto-MDIX detection.

    This patch series adds support for 10BASE-T, 100BASE-TX, and 1000BASE-T,
    QSGMII link with the MAC, downshifting, HP Auto-MDIX detection
    and blinking pattern for its 4 LEDs.

    The GPIO register bank is a set of registers that are common to all PHYs
    in the package. So any modification in any register of this bank affects
    all PHYs of the package.

    If the PHYs haven't been reset before booting the Linux kernel and were
    configured to use interrupts for e.g. link status updates, it is
    required to clear the interrupts mask register of all PHYs before being
    able to use interrupts with any PHY. The first PHY of the package that
    will be init will take care of clearing all PHYs interrupts mask
    registers. Thus, we need to keep track of the init sequence in the
    package, if it's already been done or if it's to be done.

    Most of the init sequence of a PHY of the package is common to all PHYs
    in the package, thus we use the SMI broadcast feature which enables us
    to propagate a write in one register of one PHY to all PHYs in the same
    package.

    This patch series adds support for VSC8514 in Microsemi driver(mscc.c)
    and removes support from Vitesse driver(vitesse.c).

v2 
- mscc: Sorted varible declarations in reverse christmas tree order.

v1
- Added 0/2 file.

Kavya Sree (2):
  net: phy: mscc: add support for VSC8514 PHY
  net: phy: vitesse: Remove support for VSC8514

 drivers/net/phy/Kconfig   |   2 +-
 drivers/net/phy/mscc.c    | 381 ++++++++++++++++++++++++++++++++++++++
 drivers/net/phy/vitesse.c |  12 --
 3 files changed, 382 insertions(+), 13 deletions(-)