> 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