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: 16+ 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
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.