[PATCH 11/23] phy: usb-nop-xceiv: Add clock support

Sascha Hauer s.hauer at pengutronix.de
Mon Jan 16 02:50:56 PST 2017


As stated in the FIXME comment this is needed. Get and
enable a "main_clk" just like the kernel does.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/phy/usb-nop-xceiv.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/phy/usb-nop-xceiv.c b/drivers/phy/usb-nop-xceiv.c
index 606e09822..d403fe4d6 100644
--- a/drivers/phy/usb-nop-xceiv.c
+++ b/drivers/phy/usb-nop-xceiv.c
@@ -27,6 +27,7 @@ struct nop_usbphy {
 	struct usb_phy usb_phy;
 	struct phy *phy;
 	struct phy_provider *provider;
+	struct clk *clk;
 };
 
 static struct phy *nop_usbphy_xlate(struct device_d *dev,
@@ -37,6 +38,13 @@ static struct phy *nop_usbphy_xlate(struct device_d *dev,
 	return nopphy->phy;
 }
 
+static int nop_usbphy_init(struct phy *phy)
+{
+	struct nop_usbphy *nopphy = phy_get_drvdata(phy);
+
+	return clk_enable(nopphy->clk);
+}
+
 static struct usb_phy *nop_usbphy_to_usbphy(struct phy *phy)
 {
 	struct nop_usbphy *nopphy = phy_get_drvdata(phy);
@@ -46,6 +54,7 @@ static struct usb_phy *nop_usbphy_to_usbphy(struct phy *phy)
 
 static const struct phy_ops nop_phy_ops = {
 	.to_usbphy = nop_usbphy_to_usbphy,
+	.init = nop_usbphy_init,
 };
 
 static int nop_usbphy_probe(struct device_d *dev)
@@ -57,7 +66,10 @@ static int nop_usbphy_probe(struct device_d *dev)
 
 	dev->priv = nopphy;
 
-	/* FIXME: Add clk support */
+	nopphy->clk = clk_get(dev, "main_clk");
+	if (IS_ERR(nopphy->clk))
+		nopphy->clk = NULL;
+
 	/* FIXME: Add vbus regulator support */
 	/* FIXME: Add vbus-detect-gpio support */
 
@@ -97,8 +109,8 @@ static struct driver_d nop_usbphy_driver = {
 	.of_compatible = DRV_OF_COMPAT(nop_usbphy_dt_ids),
 };
 
-static int nop_usbphy_init(void)
+static int nop_usbphy_driver_init(void)
 {
 	return platform_driver_register(&nop_usbphy_driver);
 }
-fs_initcall(nop_usbphy_init);
+fs_initcall(nop_usbphy_driver_init);
-- 
2.11.0




More information about the barebox mailing list