Thread (42 messages) 42 messages, 8 authors, 2020-03-30

RE: [EXT] Re: [PATCH net-next 2/9] dt-bindings: net: add backplane dt bindings

From: Florinel Iordache <hidden>
Date: 2020-03-27 15:00:34
Also in: linux-devicetree, linux-doc, lkml

On Thu, Mar 26, 2020 at 03:51:15PM +0200, Florinel Iordache wrote:
quoted
Add ethernet backplane device tree bindings
quoted
+  - |
+    /* Backplane configurations for specific setup */
+    &mdio9 {
+        bpphy6: ethernet-phy@0 {
+            compatible = "ethernet-phy-ieee802.3-c45";
+            reg = <0x0>;
+            lane-handle = <&lane_d>; /* use lane D */
+            eq-algorithm = "bee";
+            /* 10G Short cables setup: up to 30 cm cable */
+            eq-init = <0x2 0x5 0x29>;
+            eq-params = <0>;
+        };
+    };
So you are modelling this as just another PHY? Does the driver get loaded based
on the PHY ID in registers 2 and 3? Does the standard define these IDs or are
they vendor specific?

Thanks
        Andrew
Hi Andrew,
Thank you all for the feedback.
I am currently working to address the entire feedback received 
so far for this new Backplane driver.

Yes, we are modelling backplane driver as a phy driver.
The driver is loaded based on PHY ID in registers 2 and 3 which 
are specified by the standard but it is a vendor specific value: 
32-Bit identifier composed of the 3rd through 24th bits of the 
Organizationally Unique Identifier (OUI) assigned to the device 
manufacturer by the IEEE, plus a six-bit model number, plus a 
four-bit revision number.
This is done in the device specific code and not in backplane 
generic driver.
You can check support for QorIQ devices where qoriq_backplane_driver 
is registered as a phy_driver:
 
@file: qoriq_backplane.c
+static struct phy_driver qoriq_backplane_driver[] = {
+	{
+	.phy_id		= PCS_PHY_DEVICE_ID,
+	.name		= QORIQ_BACKPLANE_DRIVER_NAME,
+	.phy_id_mask	= PCS_PHY_DEVICE_ID_MASK,
+	.features       = BACKPLANE_FEATURES,
+	.probe          = qoriq_backplane_probe,
+	.remove         = backplane_remove,
+	.config_init    = qoriq_backplane_config_init,
+	.aneg_done      = backplane_aneg_done,

Here we register the particular phy device ID/mask and driver name 
specific for qoriq devices. 
Also we can use generic routines provided by generic backplane driver 
if they are suitable for particular qoriq device or otherwise we can use 
more specialized specific routines like: qoriq_backplane_config_init
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help