From: "Heiko Stübner" <heiko@sntech.de>
To: Russell King - ARM Linux admin <linux@armlinux.org.uk>,
Andrew Lunn <andrew@lunn.ch>,
davem@davemloft.net
Cc: kuba@kernel.org, robh+dt@kernel.org, f.fainelli@gmail.com,
hkallweit1@gmail.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
christoph.muellner@theobroma-systems.com,
Florian Fainelli <f.fainelli@gmail.com>
Subject: Re: [PATCH v5 3/3] net: phy: mscc: handle the clkout control on some phy variants
Date: Mon, 22 Jun 2020 11:19:08 +0200 [thread overview]
Message-ID: <12647360.rPbPzDV4QW@diego> (raw)
In-Reply-To: <20200618164015.GF1551@shell.armlinux.org.uk>
Am Donnerstag, 18. Juni 2020, 18:40:15 CEST schrieb Russell King - ARM Linux admin:
> On Thu, Jun 18, 2020 at 06:01:29PM +0200, Heiko Stübner wrote:
> > Am Donnerstag, 18. Juni 2020, 17:47:48 CEST schrieb Russell King - ARM Linux admin:
> > > On Thu, Jun 18, 2020 at 05:41:54PM +0200, Heiko Stübner wrote:
> > > > Though I'm not sure how this fits in the whole bringup of ethernet phys.
> > > > Like the phy is dependent on the underlying ethernet controller to
> > > > actually turn it on.
> > > >
> > > > I guess we should check the phy-state and if it's not accessible, just
> > > > keep the values and if it's in a suitable state do the configuration.
> > > >
> > > > Calling a vsc8531_config_clkout() from both the vsc8531_config_init()
> > > > as well as the clk_(un-)prepare and clk_set_rate functions and being
> > > > protected by a check against phy_is_started() ?
> > >
> > > It sounds like it doesn't actually fit the clk API paradym then. I
> > > see that Rob suggested it, and from the DT point of view, it makes
> > > complete sense, but then if the hardware can't actually be used in
> > > the way the clk API expects it to be used, then there's a semantic
> > > problem.
> > >
> > > What is this clock used for?
> >
> > It provides a source for the mac-clk for the actual transfers, here to
> > provide the 125MHz clock needed for the RGMII interface .
> >
> > So right now the old rk3368-lion devicetree just declares a stub
> > fixed-clock and instructs the soc's clock controller to use it [0] .
> > And in the cover-letter here, I show the update variant with using
> > the clock defined here.
> >
> >
> > I've added the idea from my previous mail like shown below [1].
> > which would take into account the phy-state.
> >
> > But I guess I'll wait for more input before spamming people with v6.
>
> Let's get a handle on exactly what this is.
>
> The RGMII bus has two clocks: RXC and TXC, which are clocked at one
> of 125MHz, 25MHz or 2.5MHz depending on the RGMII data rate. Some
> PHYs replace TXC with GTX clock, which always runs at 125MHz. These
> clocks are not what you're referring to.
>
> You are referring to another commonly provided clock between the MAC
> and the PHY, something which is not unique to your PHY.
>
> We seem to be heading down a path where different PHYs end up doing
> different things in DT for what is basically the same hardware setup,
> which really isn't good. :(
>
> We have at803x using:
>
> qca,clk-out-frequency
> qca,clk-out-strength
> qca,keep-pll-enabled
>
> which are used to control the CLK_25M output pin on the device, which
> may be used to provide a reference clock for the MAC side, selecting
> between 25M, 50M, 62.5M and 125MHz. This was introduced in November
> 2019, so not that long ago.
Because it was not that old, was the reason I followed that example in
my v1 :-)
And Andrew then suggested to at least try to use a common property
for the target frequency that other phys could migrate to.
> Broadcom PHYs configure their 125MHz clock through the PHY device
> flags passed from the MAC at attach/connect time.
>
> There's the dp83867 and dp83869 configuration (I'm not sure I can
> make sense of it from reading the code) using ti,clk-output-sel -
> but it looks like it's the same kind of thing. Introduced February
> 2018 into one driver, and November 2019 in the other.
>
> It seems the Micrel PHYs produce a 125MHz clock irrespective of any
> configuration (maybe configured by firmware, or hardware strapping?)
>
> So it seems we have four ways of doing the same thing today, and now
> the suggestion is to implement a fifth different way. I think there
> needs to be some consolidation here, maybe choosing one approach and
> sticking with it.
>
> Hence, I disagree with Rob - we don't need a fifth approach, we need
> to choose one approach and decide that's our policy for this and
> apply it evenly across the board, rather than making up something
> different each time a new PHY comes along.
@Dave, @Andrew: what's you opinion here?
As Russell above (and Florian in the binding patch) pointed out,
integrating this into the clock-framework may prove difficult not only
for consistency but also for dependency reasons.
Personally I'm fine with either solution, I just want to achieve a working
ethernet on my board :-D .
Thanks
Heiko
next prev parent reply other threads:[~2020-06-22 9:19 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-18 12:11 [PATCH v5 0/3] add clkout support to mscc phys Heiko Stuebner
2020-06-18 12:11 ` [PATCH v5 1/3] net: phy: mscc: move shared probe code into a helper Heiko Stuebner
2020-06-18 12:11 ` [PATCH v5 2/3] dt-bindings: net: mscc-vsc8531: add optional clock properties Heiko Stuebner
2020-06-19 5:01 ` Florian Fainelli
2020-06-19 6:46 ` Heiko Stuebner
2020-06-18 12:11 ` [PATCH v5 3/3] net: phy: mscc: handle the clkout control on some phy variants Heiko Stuebner
2020-06-18 13:28 ` Andrew Lunn
2020-06-18 13:41 ` Russell King - ARM Linux admin
2020-06-18 15:41 ` Heiko Stübner
2020-06-18 15:47 ` Russell King - ARM Linux admin
2020-06-18 16:01 ` Heiko Stübner
2020-06-18 16:40 ` Russell King - ARM Linux admin
2020-06-22 9:19 ` Heiko Stübner [this message]
2020-06-18 15:49 ` Jakub Kicinski
2020-06-19 0:50 ` kernel test robot
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=12647360.rPbPzDV4QW@diego \
--to=heiko@sntech.de \
--cc=andrew@lunn.ch \
--cc=christoph.muellner@theobroma-systems.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@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).