[U-Boot] [PATCH v3 08/13] net: ftgmac100: add clock support
Cédric Le Goater
clg at kaod.org
Wed Oct 10 11:41:57 UTC 2018
Signed-off-by: Cédric Le Goater <clg at kaod.org>
---
drivers/net/ftgmac100.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ftgmac100.c b/drivers/net/ftgmac100.c
index edf34c601c68..a5f2f01b7179 100644
--- a/drivers/net/ftgmac100.c
+++ b/drivers/net/ftgmac100.c
@@ -11,6 +11,7 @@
* Copyright (C) 2018, IBM Corporation.
*/
+#include <clk.h>
#include <dm.h>
#include <miiphy.h>
#include <net.h>
@@ -54,6 +55,7 @@
* @bus: The mdio bus
* @phy_mode: The mode of the PHY interface (rgmii, rmii, ...)
* @max_speed: Maximum speed of Ethernet connection supported by MAC
+ * @clks: The bulk of clocks assigned to the device in the DT
*/
struct ftgmac100_data {
struct ftgmac100 *iobase;
@@ -68,6 +70,8 @@ struct ftgmac100_data {
struct mii_dev *bus;
u32 phy_mode;
u32 max_speed;
+
+ struct clk_bulk clks;
};
/*
@@ -481,6 +485,7 @@ static int ftgmac100_write_hwaddr(struct udevice *dev)
static int ftgmac100_ofdata_to_platdata(struct udevice *dev)
{
struct eth_pdata *pdata = dev_get_platdata(dev);
+ struct ftgmac100_data *priv = dev_get_priv(dev);
const char *phy_mode;
pdata->iobase = devfdt_get_addr(dev);
@@ -495,7 +500,7 @@ static int ftgmac100_ofdata_to_platdata(struct udevice *dev)
pdata->max_speed = dev_read_u32_default(dev, "max-speed", 0);
- return 0;
+ return clk_get_bulk(dev, &priv->clks);
}
static int ftgmac100_probe(struct udevice *dev)
@@ -509,6 +514,10 @@ static int ftgmac100_probe(struct udevice *dev)
priv->max_speed = pdata->max_speed;
priv->phy_addr = 0;
+ ret = clk_enable_bulk(&priv->clks);
+ if (ret)
+ goto out;
+
ret = ftgmac100_mdio_init(priv, dev->seq);
if (ret) {
dev_err(dev, "Failed to initialize mdiobus: %d\n", ret);
@@ -522,6 +531,9 @@ static int ftgmac100_probe(struct udevice *dev)
}
out:
+ if (ret)
+ clk_release_bulk(&priv->clks);
+
return ret;
}
@@ -532,6 +544,7 @@ static int ftgmac100_remove(struct udevice *dev)
free(priv->phydev);
mdio_unregister(priv->bus);
mdio_free(priv->bus);
+ clk_release_bulk(&priv->clks);
return 0;
}
--
2.17.1
More information about the U-Boot
mailing list