Thread (24 messages) 24 messages, 6 authors, 2014-09-01

[PATCH 3/3] ARM: zynq: DT: Add Ethernet phys

From: f.fainelli@gmail.com (Florian Fainelli)
Date: 2014-08-22 20:47:52
Also in: linux-devicetree, lkml

2014-08-21 8:49 GMT-07:00 S?ren Brinkmann [off-list ref]:
On Thu, 2014-08-21 at 01:32PM +0200, Andreas F?rber wrote:
quoted
Am 21.08.2014 10:41, schrieb Michal Simek:
quoted
On 08/20/2014 05:56 PM, Soren Brinkmann wrote:
quoted
Add missing Ethernet phys to Zynq DTs.

Signed-off-by: Soren Brinkmann <redacted>
---
 arch/arm/boot/dts/zynq-zc702.dts | 6 ++++++
 arch/arm/boot/dts/zynq-zc706.dts | 6 ++++++
 arch/arm/boot/dts/zynq-zed.dts   | 6 ++++++
 3 files changed, 18 insertions(+)
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index 30bcfe20f0bc..fa810505ab8f 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -36,6 +36,12 @@
 &gem0 {
   status = "okay";
   phy-mode = "rgmii-id";
+  phy-handle = <&ethernet_phy>;
+
+  ethernet_phy: ethernet-phy at 7 {
+          compatible = "marvell,88e1116r", "ethernet-phy-ieee802.3-c22";
c22 is completely unused by the kernel and also c22 is default option anyway.
Any advantage to have c22 specified here?
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/phy.txt

S?ren's marvell,* entries do not seem documented, therefore I used the
documented "ethernet-phy-idAAAA.BBBB" based syntax. The documented
example specifically uses -c22, too.

Either it's okay to prepend unrecognized model strings, then you should
update zynq-parallella.dts as well (I put the model in a comment there)
or use the official strings like I used and keep the readable models as
comments. Documenting all those "marvell,88e1116r", "marvell,88e1518",
"marvell,88e1318" PHY bindings and possibly prepending them to the ID
based strings would be another option, of course.
These phy-bindings are everything than obvious to me. It seems the docs
are spread across a couple of different files and not fully up to date
either. I basically tried to get something working out of the docs, the
parallela and our vendor DT files.
There is one file that describes everything that is needed in
Documentation/devicetree/bindings/net/phy.txt, if it is not clear,
patches are welcome.
So my thinkings:
 - the compatible string with the -c22 is used and documented in the phy
   bindings, it should be there.
The clause 22 compatible string is not used, but we do need it to know
it is not a clause 45 PHY, which implicitly makes the clause 22
compatible string used.
 - the ID based strings seem to be not needed since, IIUC, the core
   reads the ID from the PHY and uses it, so I just left it out not
   trying to figure out how to obtain the correct ID
It is not needed, but it is one way to specify a PHY device if you do
not know what compatible string to use instead.
 - the marvell compatible strings are used in our vendor tree. They
   aren't used anywhere but in our vendor tree. I though keeping them is
   nice since it identifies the PHY fully. And in case that level of
   detail is needed at some point it is already there.
And this is the recommended way to do it in case we ever need to key a
software decision based on the hardware.
Assuming that we wanna keep things this way, I'm happy to re-spin this
patch and also add a similar compatible string to the parallela DT.
Your initial patchset is correct with repesct to how the Device Tree
binding for Ethernet PHY nodes is defined.
        Thanks,
        S?ren


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help