summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWenyou Yang <wenyou.yang@atmel.com>2017-02-14 16:24:40 +0800
committerTom Rini <trini@konsulko.com>2017-03-01 21:28:39 -0500
commit3fd2b3aa19b9479b5e785087e4951d3a7bbb87be (patch)
treedddf615ed71656de8d6215d66e32338a3c55de60 /drivers
parent7a70c9985ccf2e7e0016b32c367a922e01b6c1fb (diff)
downloadu-boot-imx-3fd2b3aa19b9479b5e785087e4951d3a7bbb87be.zip
u-boot-imx-3fd2b3aa19b9479b5e785087e4951d3a7bbb87be.tar.gz
u-boot-imx-3fd2b3aa19b9479b5e785087e4951d3a7bbb87be.tar.bz2
net: macb: Fix ETH not found when clock not support
For the boards such as smartweb on which the clock driver isn't supported, the ethernet fail to be found when booting up with the below log. ---8<--- Net: No ethernet found. --->8--- Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> Tested-by: Heiko Schocher <hs@denx.de> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/macb.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 1c4bef9..402e866 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -113,7 +113,9 @@ struct macb_device {
struct mii_dev *bus;
#ifdef CONFIG_DM_ETH
+#ifdef CONFIG_CLK
unsigned long pclk_rate;
+#endif
phy_interface_t phy_interface;
#endif
};
@@ -756,7 +758,7 @@ static int _macb_write_hwaddr(struct macb_device *macb, unsigned char *enetaddr)
static u32 macb_mdc_clk_div(int id, struct macb_device *macb)
{
u32 config;
-#ifdef CONFIG_DM_ETH
+#if defined(CONFIG_DM_ETH) && defined(CONFIG_CLK)
unsigned long macb_hz = macb->pclk_rate;
#else
unsigned long macb_hz = get_macb_pclk_rate(id);
@@ -778,7 +780,7 @@ static u32 gem_mdc_clk_div(int id, struct macb_device *macb)
{
u32 config;
-#ifdef CONFIG_DM_ETH
+#if defined(CONFIG_DM_ETH) && defined(CONFIG_CLK)
unsigned long macb_hz = macb->pclk_rate;
#else
unsigned long macb_hz = get_macb_pclk_rate(id);
@@ -1002,6 +1004,7 @@ static const struct eth_ops macb_eth_ops = {
.write_hwaddr = macb_write_hwaddr,
};
+#ifdef CONFIG_CLK
static int macb_enable_clk(struct udevice *dev)
{
struct macb_device *macb = dev_get_priv(dev);
@@ -1025,13 +1028,13 @@ static int macb_enable_clk(struct udevice *dev)
return 0;
}
+#endif
static int macb_eth_probe(struct udevice *dev)
{
struct eth_pdata *pdata = dev_get_platdata(dev);
struct macb_device *macb = dev_get_priv(dev);
const char *phy_mode;
- int ret;
phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
NULL);
@@ -1044,9 +1047,11 @@ static int macb_eth_probe(struct udevice *dev)
macb->regs = (void *)pdata->iobase;
- ret = macb_enable_clk(dev);
+#ifdef CONFIG_CLK
+ int ret = macb_enable_clk(dev);
if (ret)
return ret;
+#endif
_macb_eth_initialize(macb);