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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Thu, Mar 26, 2020 at 03:51:15PM +0200, Florinel Iordache wrote:
> > Add ethernet backplane device tree bindings
> 
> > +  - |
> > +    /* 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




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux