Message ID | 20240625184359.153423-1-marex@denx.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 8fda53719a596fa2a2880c42b5fa4126fbbbfc3d |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] dt-bindings: net: realtek,rtl82xx: Document known PHY IDs as compatible strings | expand |
On Tue, Jun 25, 2024 at 08:42:28PM +0200, Marek Vasut wrote: > Extract known PHY IDs from Linux kernel realtek PHY driver > and convert them into supported compatible string list for > this DT binding document. > > Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
Hello: This patch was applied to netdev/net-next.git (main) by David S. Miller <davem@davemloft.net>: On Tue, 25 Jun 2024 20:42:28 +0200 you wrote: > Extract known PHY IDs from Linux kernel realtek PHY driver > and convert them into supported compatible string list for > this DT binding document. > > Signed-off-by: Marek Vasut <marex@denx.de> > --- > Cc: Andrew Lunn <andrew@lunn.ch> > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: David S. Miller <davem@davemloft.net> > Cc: Eric Dumazet <edumazet@google.com> > Cc: Florian Fainelli <f.fainelli@gmail.com> > Cc: Heiner Kallweit <hkallweit1@gmail.com> > Cc: Jakub Kicinski <kuba@kernel.org> > Cc: Joakim Zhang <qiangqing.zhang@nxp.com> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> > Cc: Paolo Abeni <pabeni@redhat.com> > Cc: Rob Herring <robh@kernel.org> > Cc: devicetree@vger.kernel.org > Cc: kernel@dh-electronics.com > Cc: netdev@vger.kernel.org > > [...] Here is the summary with links: - [net-next,v2] dt-bindings: net: realtek,rtl82xx: Document known PHY IDs as compatible strings https://git.kernel.org/netdev/net-next/c/8fda53719a59 You are awesome, thank you!
Hi Marek, On Tue, Jun 25, 2024 at 8:46 PM Marek Vasut <marex@denx.de> wrote: > Extract known PHY IDs from Linux kernel realtek PHY driver > and convert them into supported compatible string list for > this DT binding document. > > Signed-off-by: Marek Vasut <marex@denx.de> Thanks for your patch, which is now commit 8fda53719a596fa2 ("dt-bindings: net: realtek,rtl82xx: Document known PHY IDs as compatible strings") in net-next/main (next-20240628 and later). > --- a/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml > +++ b/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml > @@ -18,6 +18,29 @@ allOf: > - $ref: ethernet-phy.yaml# > > properties: > + compatible: > + enum: > + - ethernet-phy-id001c.c800 > + - ethernet-phy-id001c.c816 > + - ethernet-phy-id001c.c838 > + - ethernet-phy-id001c.c840 > + - ethernet-phy-id001c.c848 > + - ethernet-phy-id001c.c849 > + - ethernet-phy-id001c.c84a > + - ethernet-phy-id001c.c862 > + - ethernet-phy-id001c.c878 > + - ethernet-phy-id001c.c880 > + - ethernet-phy-id001c.c910 > + - ethernet-phy-id001c.c912 > + - ethernet-phy-id001c.c913 > + - ethernet-phy-id001c.c914 > + - ethernet-phy-id001c.c915 > + - ethernet-phy-id001c.c916 > + - ethernet-phy-id001c.c942 > + - ethernet-phy-id001c.c961 > + - ethernet-phy-id001c.cad0 > + - ethernet-phy-id001c.cb00 Can you please elaborate why you didn't add an "ethernet-phy-ieee802.3-c22" fallback? > + > realtek,clkout-disable: > type: boolean > description: Gr{oetje,eeting}s, Geert
On 7/1/24 5:06 PM, Geert Uytterhoeven wrote: > Hi Marek, Hi, > On Tue, Jun 25, 2024 at 8:46 PM Marek Vasut <marex@denx.de> wrote: >> Extract known PHY IDs from Linux kernel realtek PHY driver >> and convert them into supported compatible string list for >> this DT binding document. >> >> Signed-off-by: Marek Vasut <marex@denx.de> > > Thanks for your patch, which is now commit 8fda53719a596fa2 > ("dt-bindings: net: realtek,rtl82xx: Document known PHY IDs as > compatible strings") in net-next/main (next-20240628 and later). > >> --- a/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml >> +++ b/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml >> @@ -18,6 +18,29 @@ allOf: >> - $ref: ethernet-phy.yaml# >> >> properties: >> + compatible: >> + enum: >> + - ethernet-phy-id001c.c800 >> + - ethernet-phy-id001c.c816 >> + - ethernet-phy-id001c.c838 >> + - ethernet-phy-id001c.c840 >> + - ethernet-phy-id001c.c848 >> + - ethernet-phy-id001c.c849 >> + - ethernet-phy-id001c.c84a >> + - ethernet-phy-id001c.c862 >> + - ethernet-phy-id001c.c878 >> + - ethernet-phy-id001c.c880 >> + - ethernet-phy-id001c.c910 >> + - ethernet-phy-id001c.c912 >> + - ethernet-phy-id001c.c913 >> + - ethernet-phy-id001c.c914 >> + - ethernet-phy-id001c.c915 >> + - ethernet-phy-id001c.c916 >> + - ethernet-phy-id001c.c942 >> + - ethernet-phy-id001c.c961 >> + - ethernet-phy-id001c.cad0 >> + - ethernet-phy-id001c.cb00 > > Can you please elaborate why you didn't add an > "ethernet-phy-ieee802.3-c22" fallback? I'll quote Andrew's comment on [PATCH 2/2] arm64: dts: renesas: Drop ethernet-phy-ieee802.3-c22 from PHY compatible string on all RZ boards " "ethernet-phy-ieee802.3-c22" is pretty much pointless. I don't remember seeing a DT description which actually needs it. It is in the binding more for completion, since "ethernet-phy-ieee802.3-c45" is needed sometimes, and -c22 just completes the list. " But also, statistically, the in-kernel DTs contain both options, the one with "ethernet-phy-ieee802.3-c22" fallback is less common: $ git grep -ho ethernet-phy-id001c....... | sort | uniq -c 1 ethernet-phy-id001c.c816", 2 ethernet-phy-id001c.c915", 2 ethernet-phy-id001c.c915"; 5 ethernet-phy-id001c.c916", 13 ethernet-phy-id001c.c916";
> > > properties: > > > + compatible: > > > + enum: > > > + - ethernet-phy-id001c.c800 > > > + - ethernet-phy-id001c.c816 > > > + - ethernet-phy-id001c.c838 > > > + - ethernet-phy-id001c.c840 > > > + - ethernet-phy-id001c.c848 > > > + - ethernet-phy-id001c.c849 > > > + - ethernet-phy-id001c.c84a > > > + - ethernet-phy-id001c.c862 > > > + - ethernet-phy-id001c.c878 > > > + - ethernet-phy-id001c.c880 > > > + - ethernet-phy-id001c.c910 > > > + - ethernet-phy-id001c.c912 > > > + - ethernet-phy-id001c.c913 > > > + - ethernet-phy-id001c.c914 > > > + - ethernet-phy-id001c.c915 > > > + - ethernet-phy-id001c.c916 > > > + - ethernet-phy-id001c.c942 > > > + - ethernet-phy-id001c.c961 > > > + - ethernet-phy-id001c.cad0 > > > + - ethernet-phy-id001c.cb00 > > > > Can you please elaborate why you didn't add an > > "ethernet-phy-ieee802.3-c22" fallback? Sorry, missed the original email. "ethernet-phy-ieee802.3-c22" is not a fallback. It simply states you can talk to the PHY using clause 22. This is the default. You can also use "ethernet-phy-ieee802.3-c45" to say use clause 45 to talk to the PHY. So you are basically saying which protocol the device is compatible with, not what driver the device is compatible with. In general, you don't need a compatible. The bus will be probed and the ID registers read. A driver matching those IDs will be found and loaded. If the PHY does not respond, for example because its clocks are off, or it is held in reset, you might need to specific the values of the ID registers in DT. The driver for those ID values will then be loaded, and the driver can arrange to enable the clocks/reset etc. No checking is performed if the ID values in DT match the actual hardware, so use with caution. It is known for boards to swap for a pin compatible PHY during the life of a product. If you don't have a compatible, the right thing should happen. With a compatible, you force the use of the wrong driver. Andrew
diff --git a/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml b/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml index bb94a2388520b..18ee72f5c74a8 100644 --- a/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml +++ b/Documentation/devicetree/bindings/net/realtek,rtl82xx.yaml @@ -18,6 +18,29 @@ allOf: - $ref: ethernet-phy.yaml# properties: + compatible: + enum: + - ethernet-phy-id001c.c800 + - ethernet-phy-id001c.c816 + - ethernet-phy-id001c.c838 + - ethernet-phy-id001c.c840 + - ethernet-phy-id001c.c848 + - ethernet-phy-id001c.c849 + - ethernet-phy-id001c.c84a + - ethernet-phy-id001c.c862 + - ethernet-phy-id001c.c878 + - ethernet-phy-id001c.c880 + - ethernet-phy-id001c.c910 + - ethernet-phy-id001c.c912 + - ethernet-phy-id001c.c913 + - ethernet-phy-id001c.c914 + - ethernet-phy-id001c.c915 + - ethernet-phy-id001c.c916 + - ethernet-phy-id001c.c942 + - ethernet-phy-id001c.c961 + - ethernet-phy-id001c.cad0 + - ethernet-phy-id001c.cb00 + realtek,clkout-disable: type: boolean description:
Extract known PHY IDs from Linux kernel realtek PHY driver and convert them into supported compatible string list for this DT binding document. Signed-off-by: Marek Vasut <marex@denx.de> --- Cc: Andrew Lunn <andrew@lunn.ch> Cc: Conor Dooley <conor+dt@kernel.org> Cc: David S. Miller <davem@davemloft.net> Cc: Eric Dumazet <edumazet@google.com> Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: Heiner Kallweit <hkallweit1@gmail.com> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Joakim Zhang <qiangqing.zhang@nxp.com> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Paolo Abeni <pabeni@redhat.com> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Cc: kernel@dh-electronics.com Cc: netdev@vger.kernel.org --- V2: Drop ethernet-phy-id0000.8201 entry --- .../bindings/net/realtek,rtl82xx.yaml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+)