[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8e1fb87d-b611-49f3-8091-a15b29e03659@lunn.ch>
Date: Tue, 17 Oct 2023 14:59:46 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Conor Dooley <conor@...nel.org>
Cc: Ante Knezic <ante.knezic@...mholz.de>, conor+dt@...nel.org,
davem@...emloft.net, devicetree@...r.kernel.org,
edumazet@...gle.com, f.fainelli@...il.com,
krzysztof.kozlowski+dt@...aro.org, kuba@...nel.org,
linux-kernel@...r.kernel.org, marex@...x.de, netdev@...r.kernel.org,
olteanv@...il.com, pabeni@...hat.com, robh+dt@...nel.org,
woojung.huh@...rochip.com
Subject: Re: [PATCH net-next 2/2] dt-bindings: net: microchip,ksz: document
microchip,rmii-clk-internal
> The switch always provides it's own external reference, wut? Why would
> anyone actually bother doing this instead of just using the internal
> reference?
I think you are getting provider and consumer mixed up.
Lets simplify to just a MAC and a PHY. There needs to be a shared
clock between these two. Sometimes the PHY is the provider and the MAC
is the consumer, sometimes the MAC is the provider, and the PHY is the
consumer. Sometimes the hardware gives you no choices, sometimes it
does. Sometimes a third party provides the clock, and both are
consumers.
With the KSZ, we are talking about a switch, so there are multiple
MACs and PHYs. They can all share the same clock, so long as you have
one provider, and the rest are consumers. Or each pair can figure out
its provider/consumer etc.
How this is described in DT has evolved over time. We don't have clean
clock provider/consumer relationships. The PHYs and MACs are generally
not CCF consumers/providers. They just have a property to enable the
to output a clock, or maybe a property to disable the clock output in
order to save power. There are a few exceptions, but that tends to be
where the clock provider is already CCF clock, e.g. a SoC clock.
Andrew
Powered by blists - more mailing lists