> Subject: RE: [PATCH V4 5/6] net: fec_mxc: support i.MX8M with CLK_CCF > > Hi Stefano, > > > > -----Original Message----- > > From: Stefano Babic <sba...@denx.de> > > Sent: 2019年11月3日 23:20 > > To: Peng Fan <peng....@nxp.com>; sba...@denx.de; > feste...@gmail.com; > > lu...@denx.de; joe.hershber...@ni.com > > Cc: dl-uboot-imx <uboot-...@nxp.com>; u-boot@lists.denx.de; > > frieder.schre...@kontron.de > > Subject: Re: [PATCH V4 5/6] net: fec_mxc: support i.MX8M with CLK_CCF > > > > Hi Peng, > > > > On 25/10/19 11:48, Peng Fan wrote: > > > Add more clks for fec_mxc according to Linux Kernel 5.4.0-rc1 > > > drivers/net/ethernet/freescale/fec_main.c. > > > > > > Since i.MX8MQ not support CLK_CCF, so add a check to restrict the > > > code only effect when CONFIG_IMX8M and CONFIG_CLK_CCF both > defined. > > > > > > Reviewed-by: Frieder Schrempf <frieder.schre...@kontron.de> > > > Signed-off-by: Peng Fan <peng....@nxp.com> > > > --- > > > > > > > This seems to break most of i.MX8 boards - does it build o your side ? > > I rebased imx/next to Tom's tree and apply some of my patches, > https://github.com/MrVan/u-boot/commits/imx-next-11-1 > > The build pass: > https://travis-ci.org/MrVan/u-boot/builds/605898636
Forget the mention, I add a patch to fix build CI. Will send it out soon. Thanks, Peng. > > Thanks, > Peng. > > > > > Regards, > > Stefano > > > > > V4: > > > Fix build warning > > > Add R-b > > > > > > V3: > > > Drop unneeded else > > > correct ipg->ahb > > > Other patches keep V1 > > > > > > V2: > > > Use CONFIG_IS_ENABLED > > > > > > > > > drivers/net/fec_mxc.c | 79 > > > +++++++++++++++++++++++++++++++++++++++++---------- > > > drivers/net/fec_mxc.h | 4 +++ > > > 2 files changed, 68 insertions(+), 15 deletions(-) > > > > > > diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index > > > 080dbcf7db..131d1998a7 100644 > > > --- a/drivers/net/fec_mxc.c > > > +++ b/drivers/net/fec_mxc.c > > > @@ -123,30 +123,38 @@ static int fec_mdio_read(struct ethernet_regs > > *eth, uint8_t phyaddr, > > > return val; > > > } > > > > > > +#ifndef imx_get_fecclk > > > +u32 __weak imx_get_fecclk(void) > > > +{ > > > + return 0; > > > +} > > > +#endif > > > + > > > static int fec_get_clk_rate(void *udev, int idx) { -#if > > > IS_ENABLED(CONFIG_IMX8) > > > struct fec_priv *fec; > > > struct udevice *dev; > > > int ret; > > > > > > - dev = udev; > > > - if (!dev) { > > > - ret = uclass_get_device(UCLASS_ETH, idx, &dev); > > > - if (ret < 0) { > > > - debug("Can't get FEC udev: %d\n", ret); > > > - return ret; > > > + if (IS_ENABLED(CONFIG_IMX8) || > > > + CONFIG_IS_ENABLED(CLK_CCF)) { > > > + dev = udev; > > > + if (!dev) { > > > + ret = uclass_get_device(UCLASS_ETH, idx, &dev); > > > + if (ret < 0) { > > > + debug("Can't get FEC udev: %d\n", ret); > > > + return ret; > > > + } > > > } > > > - } > > > > > > - fec = dev_get_priv(dev); > > > - if (fec) > > > - return fec->clk_rate; > > > + fec = dev_get_priv(dev); > > > + if (fec) > > > + return fec->clk_rate; > > > > > > - return -EINVAL; > > > -#else > > > - return imx_get_fecclk(); > > > -#endif > > > + return -EINVAL; > > > + } else { > > > + return imx_get_fecclk(); > > > + } > > > } > > > > > > static void fec_mii_setspeed(struct ethernet_regs *eth) @@ -1335,6 > > > +1343,47 @@ static int fecmxc_probe(struct udevice *dev) > > > return ret; > > > } > > > > > > + priv->clk_rate = clk_get_rate(&priv->ipg_clk); > > > + } else if (CONFIG_IS_ENABLED(CLK_CCF)) { > > > + ret = clk_get_by_name(dev, "ipg", &priv->ipg_clk); > > > + if (ret < 0) { > > > + debug("Can't get FEC ipg clk: %d\n", ret); > > > + return ret; > > > + } > > > + ret = clk_enable(&priv->ipg_clk); > > > + if(ret) > > > + return ret; > > > + > > > + ret = clk_get_by_name(dev, "ahb", &priv->ahb_clk); > > > + if (ret < 0) { > > > + debug("Can't get FEC ahb clk: %d\n", ret); > > > + return ret; > > > + } > > > + ret = clk_enable(&priv->ahb_clk); > > > + if (ret) > > > + return ret; > > > + > > > + ret = clk_get_by_name(dev, "enet_out", &priv->clk_enet_out); > > > + if (!ret) { > > > + ret = clk_enable(&priv->clk_enet_out); > > > + if (ret) > > > + return ret; > > > + } > > > + > > > + ret = clk_get_by_name(dev, "enet_clk_ref", &priv->clk_ref); > > > + if (!ret) { > > > + ret = clk_enable(&priv->clk_ref); > > > + if (ret) > > > + return ret; > > > + } > > > + > > > + ret = clk_get_by_name(dev, "ptp", &priv->clk_ptp); > > > + if (!ret) { > > > + ret = clk_enable(&priv->clk_ptp); > > > + if (ret) > > > + return ret; > > > + } > > > + > > > priv->clk_rate = clk_get_rate(&priv->ipg_clk); > > > } > > > > > > diff --git a/drivers/net/fec_mxc.h b/drivers/net/fec_mxc.h index > > > e5f2dd75c5..723b06a651 100644 > > > --- a/drivers/net/fec_mxc.h > > > +++ b/drivers/net/fec_mxc.h > > > @@ -264,6 +264,10 @@ struct fec_priv { > > > u32 interface; > > > #endif > > > struct clk ipg_clk; > > > + struct clk ahb_clk; > > > + struct clk clk_enet_out; > > > + struct clk clk_ref; > > > + struct clk clk_ptp; > > > u32 clk_rate; > > > }; > > > > > > > > > > > > -- > > > ============================================================== > > ======= > > DENX Software Engineering GmbH, Managing Director: Wolfgang > Denk > > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > > Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: > sba...@denx.de > > > ============================================================== > > ======= _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot