Re: [PATCH] [v7] net: emac: emac gigabit ethernet controller driver
From: Timur Tabi <hidden>
Date: 2016-08-17 20:19:58
Also in:
linux-arm-msm, netdev
Florian Fainelli wrote:
If it has self identification, and the MAC is capable of knowing what kind of PHY it is internally bundled with, why does it matter to represent that specific piece of information in Device Tree or ACPI?
That's the thing - the MAC is not capable of knowing. From a hardware perspective, the MAC and PHY are physically distinct IP blocks, and so the MAC hardware has no idea what it's really connected to. In theory, we don't even need an internal PHY, but if there is an internal PHY, we have to program it correctly. This is why we need a DT and ACPI property (or whatever) to tell the driver what kind of PHY it's attached to.
quoted
The problem is that the internal PHY has mechanism for self-identification. There is no ACPI or device tree node for it. There is no register you can query to see if it's there or what version it is. The MAC part of the EMAC has no knowledge of the PHY part. The driver just has to know it's there.Nothing prevents you from detailing in ACPI or DT sub-components of a larger HW block, if there is such a desire, but just make it in a way that it looks like what would be done for e.g: separate discrete parts, only the parenting of nodes would change.
So instead of just having a single property, instead create a child node just for the SGMII phy, with its own compatible string and various other properties (like interrupt and base register)? That's not a bad idea. -- Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.