From: Vinod Koul <vkoul@kernel.org>
To: Swapnil Kashinath Jakhade <sjakhade@cadence.com>
Cc: "kishon@ti.com" <kishon@ti.com>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
"linux-phy@lists.infradead.org" <linux-phy@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Milind Parab <mparab@cadence.com>,
"a-govindraju@ti.com" <a-govindraju@ti.com>
Subject: Re: [PATCH v3 13/15] phy: cadence: Sierra: Add PCIe + QSGMII PHY multilink configuration
Date: Tue, 14 Dec 2021 14:52:23 +0530 [thread overview]
Message-ID: <YbhiT7PTtqaofN5w@matsya> (raw)
In-Reply-To: <DM6PR07MB6154AF51437C535362EC4059C5719@DM6PR07MB6154.namprd07.prod.outlook.com>
On 10-12-21, 09:46, Swapnil Kashinath Jakhade wrote:
> Hi Vinod,
>
> > -----Original Message-----
> > From: Vinod Koul <vkoul@kernel.org>
> > Sent: Thursday, December 9, 2021 5:24 PM
> > To: Swapnil Kashinath Jakhade <sjakhade@cadence.com>
> > Cc: kishon@ti.com; robh+dt@kernel.org; p.zabel@pengutronix.de; linux-
> > phy@lists.infradead.org; linux-kernel@vger.kernel.org;
> > devicetree@vger.kernel.org; Milind Parab <mparab@cadence.com>; a-
> > govindraju@ti.com
> > Subject: Re: [PATCH v3 13/15] phy: cadence: Sierra: Add PCIe + QSGMII PHY
> > multilink configuration
> >
> > EXTERNAL MAIL
> >
> >
> > On 02-12-21, 14:12, Swapnil Kashinath Jakhade wrote:
> > > Hi Vinod,
> > >
> > > > -----Original Message-----
> > > > From: Vinod Koul <vkoul@kernel.org>
> > > > Sent: Thursday, November 25, 2021 10:41 AM
> > > > To: Swapnil Kashinath Jakhade <sjakhade@cadence.com>
> > > > Cc: kishon@ti.com; robh+dt@kernel.org; p.zabel@pengutronix.de;
> > > > linux- phy@lists.infradead.org; linux-kernel@vger.kernel.org;
> > > > devicetree@vger.kernel.org; Milind Parab <mparab@cadence.com>; a-
> > > > govindraju@ti.com
> > > > Subject: Re: [PATCH v3 13/15] phy: cadence: Sierra: Add PCIe +
> > > > QSGMII PHY multilink configuration
> > > >
> > > > EXTERNAL MAIL
> > > >
> > > >
> > > > On 24-11-21, 07:33, Swapnil Kashinath Jakhade wrote:
> > > >
> > > > > > so this is pcie->qsgmii ->ssc/external/internal ... ok
> > > > > >
> > > > > > > + [NO_SSC] =
> > > > > > &pcie_100_no_ssc_plllc_cmn_vals,
> > > > > > > + [EXTERNAL_SSC] =
> > > > > > &pcie_100_ext_ssc_plllc_cmn_vals,
> > > > > > > + [INTERNAL_SSC] =
> > > > > > &pcie_100_int_ssc_plllc_cmn_vals,
> > > > > > > + },
> > > > > > > },
> > > > > > > [TYPE_USB] = {
> > > > > > > [TYPE_NONE] = {
> > > > > > > [EXTERNAL_SSC] =
> > > > > > &usb_100_ext_ssc_cmn_vals,
> > > > > > > },
> > > > > > > },
> > > > > > > + [TYPE_QSGMII] = {
> > > > > > > + [TYPE_PCIE] = {
> > > > > >
> > > > > > now it is reverse! qsgmii -> pcie -> ... why?
> > > > > >
> > > > > > what is meant by pcie->qsgmii and qsgmii-> pcie?
> > > > > >
> > > > >
> > > > > Multi-protocol configuration is done in 2 phases, each for one protocol.
> > > > > e.g. for PCIe + QSGMII case,
> > > > > [TYPE_PCIE][TYPE_QSGMII] will configure common and lane registers
> > > > > for PCIe and [TYPE_QSGMII][TYPE_PCIE] will configure common and
> > > > > lane
> > > > registers for QSGMII.
> > > >
> > > > Then it should be always common + protocol or protocol + common, not
> > > > both please! Pls make an order and stick to it everywhere... If that
> > > > is not possible, I would like to understand why
> > >
> > > Could you please elaborate what do you mean by " common + protocol or
> > > protocol + common, not both please!"?
> > > The order is same everywhere which is common + lane configuration for
> > > protocol 1 and then for protocol 2. For multiprotocol case, PHY
> > > configuration is based on which protocols are operating simultaneously. So
> > e.g.
> > > [TYPE_QSGMII][TYPE_PCIE] -> QSGMII configuration when other protocol
> > > is PCIe Which might be different than [TYPE_QSGMII][TYPE_*] -> QSGMII
> > > configuration with other protocol.
> >
> > As I said I would like to understand what is the difference b/w
> > [TYPE_QSGMII][TYPE_PCIE] & [TYPE_PCIE][TYPE_QSGMII] and why?
> >
>
> This logic is for implementing multi-link PHY configuration.
> Consider a case for a 4 lane PHY with PCIe using 2 lanes and QSGMII other 2 lanes.
> Sierra PHY has 2 PLLs, viz. PLLLC and PLLLC1.
> So in this case, PLLLC is used for PCIe and PLLLC1 is used for QSGMII and
> PHY will be configured in two steps as described below.
> 1. For first step, phy_t1 = TYPE_PCIE and phy_t2 = TYPE_QSGMII
> So we select registers as
> [TYPE_PCIE][TYPE_QSGMII][ssc]:
> This will configure PHY registers associated for *PCIe* (i.e. first protocol)
> involving PLLLC registers and registers for first 2 lanes of PHY.
> 2. In second step, the variables phy_t1 and phy_t2 are swapped. So now,
> phy_t1 = TYPE_QSGMII and phy_t2 = TYPE_PCIE. And we select registers as:
> [TYPE_QSGMII][TYPE_PCIE][ssc]:
> This will configure PHY registers associated for *QSGMII* (i.e. second protocol)
> involving PLLLC1 registers and registers for other 2 lanes of PHY.
>
> This completes the PHY configuration for multilink operation.
> Above approach enables dividing the large number of PHY register configurations
> into protocol specific smaller groups.
>
> Please let me know if it answers your question.
Thanks this helps. Can you please add this useful info in the comments
for this, that will help folks understanding why it was done like this
--
~Vinod
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2021-12-14 9:22 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-22 17:02 [PATCH v3 00/15] PHY: Add support for multilink configurations in Cadence Sierra PHY driver Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 01/15] phy: cadence: Sierra: Use of_device_get_match_data() to get driver data Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 02/15] phy: cadence: Sierra: Prepare driver to add support for multilink configurations Swapnil Jakhade
2021-11-23 4:33 ` Vinod Koul
2021-11-24 7:32 ` Swapnil Kashinath Jakhade
2021-10-22 17:02 ` [PATCH v3 03/15] dt-bindings: phy: cadence-torrent: Rename SSC macros to use generic names Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 04/15] dt-bindings: phy: cadence-sierra: Add binding to specify SSC mode Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 05/15] phy: cadence: Sierra: Add support to get SSC type from device tree Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 06/15] phy: cadence: Sierra: Rename some regmap variables to be in sync with Sierra documentation Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 07/15] phy: cadence: Sierra: Add PHY PCS common register configurations Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 08/15] phy: cadence: Sierra: Check cmn_ready assertion during PHY power on Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 09/15] phy: cadence: Sierra: Check PIPE mode PHY status to be ready for operation Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 10/15] phy: cadence: Sierra: Update single link PCIe register configuration Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 11/15] phy: cadence: Sierra: Fix to get correct parent for mux clocks Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 12/15] phy: cadence: Sierra: Add support for PHY multilink configurations Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 13/15] phy: cadence: Sierra: Add PCIe + QSGMII PHY multilink configuration Swapnil Jakhade
2021-11-23 4:48 ` Vinod Koul
2021-11-24 7:33 ` Swapnil Kashinath Jakhade
2021-11-25 5:10 ` Vinod Koul
2021-12-02 14:12 ` Swapnil Kashinath Jakhade
2021-12-09 6:11 ` Milind Parab
2021-12-09 11:50 ` Vinod Koul
2021-12-09 11:53 ` Vinod Koul
2021-12-10 9:46 ` Swapnil Kashinath Jakhade
2021-12-14 9:22 ` Vinod Koul [this message]
2021-10-22 17:02 ` [PATCH v3 14/15] dt-bindings: phy: cadence-sierra: Add clock ID for derived reference clock Swapnil Jakhade
2021-10-22 17:02 ` [PATCH v3 15/15] phy: cadence: Sierra: Add support for derived reference clock output Swapnil Jakhade
2021-12-09 7:55 ` [PATCH v3 00/15] PHY: Add support for multilink configurations in Cadence Sierra PHY driver Kishon Vijay Abraham I
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=YbhiT7PTtqaofN5w@matsya \
--to=vkoul@kernel.org \
--cc=a-govindraju@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=kishon@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=mparab@cadence.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=sjakhade@cadence.com \
/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).