netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steen Hegelund <steen.hegelund@microchip.com>
To: Kishon Vijay Abraham I <kishon@ti.com>, Vinod Koul <vkoul@kernel.org>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Lars Povlsen <lars.povlsen@microchip.com>,
	Bjarni Jonasson <bjarni.jonasson@microchip.com>,
	Microchip UNG Driver List <UNGLinuxDriver@microchip.com>,
	<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	Andrew Lunn <andrew@lunn.ch>
Subject: Re: [PATCH v12 2/4] phy: Add ethernet serdes configuration option
Date: Fri, 15 Jan 2021 17:14:00 +0100	[thread overview]
Message-ID: <f35e3c33f011b6aabd96d3b6de3750bf3d04b699.camel@microchip.com> (raw)
In-Reply-To: <92a943cc-b332-4ac6-42a8-bb3cdae13bc0@ti.com>

Hi Kishon,

On Fri, 2021-01-15 at 21:22 +0530, Kishon Vijay Abraham I wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
> 
> Hi,
> 
> On 07/01/21 2:49 pm, Steen Hegelund wrote:
> > Provide a new ethernet phy configuration structure, that
> > allow PHYs used for ethernet to be configured with
> > speed, media type and clock information.
> > 
> > Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com>
> > Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com>
> > Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> > ---
> >  include/linux/phy/phy-ethernet-serdes.h | 30
> > +++++++++++++++++++++++++
> >  include/linux/phy/phy.h                 |  4 ++++
> >  2 files changed, 34 insertions(+)
> >  create mode 100644 include/linux/phy/phy-ethernet-serdes.h
> > 
> > diff --git a/include/linux/phy/phy-ethernet-serdes.h
> > b/include/linux/phy/phy-ethernet-serdes.h
> > new file mode 100644
> > index 000000000000..d2462fadf179
> > --- /dev/null
> > +++ b/include/linux/phy/phy-ethernet-serdes.h
> > @@ -0,0 +1,30 @@
> > +/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
> > +/*
> > + * Microchip Sparx5 Ethernet SerDes driver
> > + *
> > + * Copyright (c) 2020 Microschip Inc
> > + */
> > +#ifndef __PHY_ETHERNET_SERDES_H_
> > +#define __PHY_ETHERNET_SERDES_H_
> > +
> > +#include <linux/types.h>
> > +
> > +enum ethernet_media_type {
> > +     ETH_MEDIA_DEFAULT,
> > +     ETH_MEDIA_SR,
> > +     ETH_MEDIA_DAC,
> > +};
> 
> I'm not familiar with Ethernet. Are these generic media types? what
> does
> SR or DAC refer to? 

The SR stands for Short Reach and is a fiber type connection used by
SFPs.  There also other "reach" variants.

DAC stands for Direct Attach Copper and is a type of cable that plugs
into an SFP cage and provides information back to the user via its
EEPROM regarding supported speed and capabilities in general.  These
typically supports speed of 5G or more.

The SFP/Phylink is the "out-of-band" method that provides the type of
connection: speed and media type that allows the client to adapt the
SerDes configuration to the type of media selected by the user.

> Are there other media types? What is the out-of-band
> mechanism by which the controller gets the media type? Why was this
> not
> required for other existing Ethernet SERDES? 

This is probably a matter of the interface speed are now getting higher
and the amount of configuration needed for the SerDes have increased,
at the same time as this is not being a static setup, because the user
an plug and unplug media to the SFP cage.

> Are you aware of any other
> vendors who might require this?

I suspect that going forward it will become more widespread, at least
we have more chips in the pipeline that need this SerDes for high speed
connectivity.


> 
> Thanks
> Kishon
> > +
> > +/**
> > + * struct phy_configure_opts_eth_serdes - Ethernet SerDes This
> > structure is used
> > + * to represent the configuration state of a Ethernet Serdes PHY.
> > + * @speed: Speed of the serdes interface in Mbps
> > + * @media_type: Specifies which media the serdes will be using
> > + */
> > +struct phy_configure_opts_eth_serdes {
> > +     u32                        speed;
> > +     enum ethernet_media_type   media_type;
> > +};
> > +
> > +#endif
> > +
> > diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
> > index e435bdb0bab3..78ecb375cede 100644
> > --- a/include/linux/phy/phy.h
> > +++ b/include/linux/phy/phy.h
> > @@ -18,6 +18,7 @@
> > 
> >  #include <linux/phy/phy-dp.h>
> >  #include <linux/phy/phy-mipi-dphy.h>
> > +#include <linux/phy/phy-ethernet-serdes.h>
> > 
> >  struct phy;
> > 
> > @@ -49,11 +50,14 @@ enum phy_mode {
> >   *
> >   * @mipi_dphy:       Configuration set applicable for phys
> > supporting
> >   *           the MIPI_DPHY phy mode.
> > + * @eth_serdes: Configuration set applicable for phys supporting
> > + *           the ethernet serdes.
> >   * @dp:              Configuration set applicable for phys
> > supporting
> >   *           the DisplayPort protocol.
> >   */
> >  union phy_configure_opts {
> >       struct phy_configure_opts_mipi_dphy     mipi_dphy;
> > +     struct phy_configure_opts_eth_serdes    eth_serdes;
> >       struct phy_configure_opts_dp            dp;
> >  };
> > 
> > 

Best Regards
Steen


  reply	other threads:[~2021-01-15 16:15 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07  9:19 [PATCH v12 0/4] Adding the Sparx5 Serdes driver Steen Hegelund
2021-01-07  9:19 ` [PATCH v12 1/4] dt-bindings: phy: Add sparx5-serdes bindings Steen Hegelund
2021-01-14 11:02   ` Alexandre Belloni
2021-01-07  9:19 ` [PATCH v12 2/4] phy: Add ethernet serdes configuration option Steen Hegelund
2021-01-14 11:02   ` Alexandre Belloni
2021-01-15  8:44   ` Kishon Vijay Abraham I
2021-01-15  9:08     ` Steen Hegelund
2021-01-15 15:52   ` Kishon Vijay Abraham I
2021-01-15 16:14     ` Steen Hegelund [this message]
2021-01-27 12:34       ` Kishon Vijay Abraham I
2021-01-27 14:45         ` Steen Hegelund
2021-01-22 15:07     ` Steen Hegelund
2021-01-07  9:19 ` [PATCH v12 3/4] phy: Add Sparx5 ethernet serdes PHY driver Steen Hegelund
2021-01-14 11:03   ` Alexandre Belloni
2021-01-07  9:19 ` [PATCH v12 4/4] arm64: dts: sparx5: Add Sparx5 serdes driver node Steen Hegelund
2021-01-14 11:03   ` Alexandre Belloni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f35e3c33f011b6aabd96d3b6de3750bf3d04b699.camel@microchip.com \
    --to=steen.hegelund@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=bjarni.jonasson@microchip.com \
    --cc=kishon@ti.com \
    --cc=lars.povlsen@microchip.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).