Hi, On Monday 08 September 2014 03:00 PM, Peter Griffin wrote: > This driver adds support for USB (1.1 and 2.0) phy for STiH415 and > STiH416 System-On-Chips from STMicroelectronics. > > Signed-off-by: Maxime Coquelin <maxime.coquelin@xxxxxx> > Signed-off-by: Peter Griffin <peter.griffin@xxxxxxxxxx> > --- > drivers/phy/Kconfig | 8 ++ > drivers/phy/Makefile | 1 + > drivers/phy/phy-stih41x-usb.c | 192 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 201 insertions(+) > create mode 100644 drivers/phy/phy-stih41x-usb.c > > diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig > index 0dd7427..26f8a86 100644 > --- a/drivers/phy/Kconfig > +++ b/drivers/phy/Kconfig > @@ -230,4 +230,12 @@ config PHY_XGENE > help > This option enables support for APM X-Gene SoC multi-purpose PHY. > > +config PHY_STIH41X_USB > + tristate "STMicroelectronics USB2 PHY driver for STiH41x series" > + depends on ARCH_STI > + select GENERIC_PHY > + help > + Enable this to support the USB transceiver that is part of > + STMicroelectronics STiH41x SoC series. > + > endmenu > diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile > index 95c69ed..d02f365 100644 > --- a/drivers/phy/Makefile > +++ b/drivers/phy/Makefile > @@ -28,3 +28,4 @@ obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA) += phy-qcom-ipq806x-sata.o > obj-$(CONFIG_PHY_ST_SPEAR1310_MIPHY) += phy-spear1310-miphy.o > obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY) += phy-spear1340-miphy.o > obj-$(CONFIG_PHY_XGENE) += phy-xgene.o > +obj-$(CONFIG_PHY_STIH41X_USB) += phy-stih41x-usb.o > diff --git a/drivers/phy/phy-stih41x-usb.c b/drivers/phy/phy-stih41x-usb.c > new file mode 100644 > index 0000000..7d0a5d4 > --- /dev/null > +++ b/drivers/phy/phy-stih41x-usb.c > @@ -0,0 +1,192 @@ . . <skip> . . > + > + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); > + if (IS_ERR(phy_provider)) > + return PTR_ERR(phy_provider); > + > + phy = devm_phy_create(dev, NULL, &stih41x_usb_phy_ops, NULL); > + > + if (IS_ERR(phy)) { > + dev_err(dev, "failed to create Display Port PHY\n"); > + return PTR_ERR(phy); > + } > + > + phy_dev->dev = dev; > + > + phy_set_drvdata(phy, phy_dev); > + > + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); > + if (IS_ERR(phy_provider)) > + return PTR_ERR(phy_provider); registering phy provider multiple times.. Thanks Kishon -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html