[U-Boot] [PATCH 05/10] net: designware: Add a post-started hook

Sjoerd Simons sjoerd.simons at collabora.co.uk
Mon Oct 5 10:55:45 CEST 2015


On Sat, 2015-10-03 at 15:30 +0100, Simon Glass wrote:
> Hi Sjoerd,

> >  static int designware_eth_send(struct udevice *dev, void *packet,
> > int length)
> > diff --git a/drivers/net/designware.h b/drivers/net/designware.h
> > index 47e727b..b45599b 100644
> > --- a/drivers/net/designware.h
> > +++ b/drivers/net/designware.h
> > @@ -236,6 +236,10 @@ struct dw_eth_dev {
> >  #endif
> >         struct phy_device *phydev;
> >         struct mii_dev *bus;
> > +
> > +#ifdef CONFIG_DM_ETH
> > +       int (*started)(struct udevice *dev);
> > +#endif
> 
> With driver model we should not need to add such hooks. is this
> needed
> because we don't have a PHY uclass yet?

Essentially I need to be able to configure one of the GMAC clocks
depending on the result of the phy negotiation. Looking at the linux
kernel this seems a rather common item for the dw gmac interface.

I guess, I could do without that hook by exporting all functions
required to fill the eth_ops struct and override the start function.
Would you prefer that?

I guess a PHY uclass would also help here, assuming such a uclass would
provide a callback for link state changes (e.g. like of_phy_connect in
Linux).

> >  };
> > 
> >  #ifdef CONFIG_DM_ETH
> > --
> > 2.5.3
> > 
> 
> Regards,
> Simon

-- 
Sjoerd Simons
Collabora Ltd.


More information about the U-Boot mailing list