On Wed, Oct 21, 2015 at 7:56 AM, WingMan Kwok <w-kwok2@xxxxxx> wrote: > On TI's Keystone platforms, several peripherals such as the > gbe ethernet switch, 10gbe ethernet switch and PCIe controller > require the use of a SerDes for converting SoC parallel data into > serialized data that can be output over a high-speed electrical > interface, and also converting high-speed serial input data > into parallel data that can be processed by the SoC. The > SerDeses used by those peripherals, though they may be different, > are largely similar in functionality and setup. > > This patch provides a SerDes phy driver implementation that can be > used by the above mentioned peripheral drivers to configure their > respective SerDeses. > > Signed-off-by: WingMan Kwok <w-kwok2@xxxxxx> > --- > Documentation/devicetree/bindings/phy/ti-phy.txt | 239 +++ For the binding: Acked-by: Rob Herring <robh@xxxxxxxxxx> One other comment: > + if (of_device_is_compatible(np, "ti,keystone-serdes-gbe")) { > + sc->phy_type = KSERDES_PHY_SGMII; > + } else if (of_device_is_compatible(np, "ti,keystone-serdes-xgbe")) { > + sc->phy_type = KSERDES_PHY_XGE; > + } else if (of_device_is_compatible(np, "ti,keystone-serdes-pcie")) { > + sc->phy_type = KSERDES_PHY_PCIE; > + } else { > + dev_err(dev, "unknown phy type\n"); > + return -EINVAL; > + } Use the match data to set the type: > +static const struct of_device_id kserdes_of_match[] = { > + { .compatible = "ti,keystone-serdes-gbe" }, > + { .compatible = "ti,keystone-serdes-pcie" }, > + { .compatible = "ti,keystone-serdes-xgbe" }, > + { }, > +}; > +MODULE_DEVICE_TABLE(of, kserdes_of_match); Rob -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html