Hi York,

I guess with Andy no longer there as FSL u-boot maintainer, will the patch below
go through you or Joe. If no one has an objection to this patch, can I get a 
Acked-by and
can we queue it up for upstream.
 
Regards,
Bhupesh

> -----Original Message-----
> From: Sharma Bhupesh-B45370
> Sent: Tuesday, July 23, 2013 2:00 PM
> To: u-boot@lists.denx.de; Fleming Andy-AFLEMING;
> joe.hershber...@gmail.com
> Cc: Sharma Bhupesh-B45370
> Subject: RE: [PATCH 1/1] net: phy/realtek: Add support for RTL8211DN and
> RTL8211E phy modules
> 
> Hi Andy, Joe,
> 
> > This patch adds support for Realtek PHY modules RTL8211DN and RTL8211E
> > (variants: RTL8211E-VB-CG, RTL8211E-VL-CG, RTL8211EG-VB-CG), which can
> > be found on Freescale's T1040RDB boards.
> >
> > To make the driver more generic across 8211 family, a generic name
> > 8211x is added for macros and function names.
> >
> > Signed-off-by: Bhupesh Sharma <bhupesh.sha...@freescale.com>
> 
> Can you please review this patch and let me know if these changes seem
> suitable to you.
> 
> Thanks for your help.
> Regards,
> Bhupesh
> 
> > ---
> >  drivers/net/phy/realtek.c | 77
> > +++++++++++++++++++++++++++++++----------
> > ------
> >  1 file changed, 51 insertions(+), 26 deletions(-)
> >
> > diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
> > index
> > b7e2753..b971456 100644
> > --- a/drivers/net/phy/realtek.c
> > +++ b/drivers/net/phy/realtek.c
> > @@ -26,18 +26,18 @@
> >
> >  #define PHY_AUTONEGOTIATE_TIMEOUT 5000
> >
> > -/* RTL8211B PHY Status Register */
> > -#define MIIM_RTL8211B_PHY_STATUS       0x11
> > -#define MIIM_RTL8211B_PHYSTAT_SPEED    0xc000
> > -#define MIIM_RTL8211B_PHYSTAT_GBIT     0x8000
> > -#define MIIM_RTL8211B_PHYSTAT_100      0x4000
> > -#define MIIM_RTL8211B_PHYSTAT_DUPLEX   0x2000
> > -#define MIIM_RTL8211B_PHYSTAT_SPDDONE  0x0800
> > -#define MIIM_RTL8211B_PHYSTAT_LINK     0x0400
> > -
> > -
> > -/* RealTek RTL8211B */
> > -static int rtl8211b_config(struct phy_device *phydev)
> > +/* RTL8211x PHY Status Register */
> > +#define MIIM_RTL8211x_PHY_STATUS       0x11
> > +#define MIIM_RTL8211x_PHYSTAT_SPEED    0xc000
> > +#define MIIM_RTL8211x_PHYSTAT_GBIT     0x8000
> > +#define MIIM_RTL8211x_PHYSTAT_100      0x4000
> > +#define MIIM_RTL8211x_PHYSTAT_DUPLEX   0x2000
> > +#define MIIM_RTL8211x_PHYSTAT_SPDDONE  0x0800
> > +#define MIIM_RTL8211x_PHYSTAT_LINK     0x0400
> > +
> > +
> > +/* RealTek RTL8211x */
> > +static int rtl8211x_config(struct phy_device *phydev)
> >  {
> >     phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, BMCR_RESET);
> >
> > @@ -46,20 +46,20 @@ static int rtl8211b_config(struct phy_device
> *phydev)
> >     return 0;
> >  }
> >
> > -static int rtl8211b_parse_status(struct phy_device *phydev)
> > +static int rtl8211x_parse_status(struct phy_device *phydev)
> >  {
> >     unsigned int speed;
> >     unsigned int mii_reg;
> >
> > -   mii_reg = phy_read(phydev, MDIO_DEVAD_NONE,
> > MIIM_RTL8211B_PHY_STATUS);
> > +   mii_reg = phy_read(phydev, MDIO_DEVAD_NONE,
> > MIIM_RTL8211x_PHY_STATUS);
> >
> > -   if (!(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) {
> > +   if (!(mii_reg & MIIM_RTL8211x_PHYSTAT_SPDDONE)) {
> >             int i = 0;
> >
> >             /* in case of timeout ->link is cleared */
> >             phydev->link = 1;
> >             puts("Waiting for PHY realtime link");
> > -           while (!(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) {
> > +           while (!(mii_reg & MIIM_RTL8211x_PHYSTAT_SPDDONE)) {
> >                     /* Timeout reached ? */
> >                     if (i > PHY_AUTONEGOTIATE_TIMEOUT) {
> >                             puts(" TIMEOUT !\n");
> > @@ -71,29 +71,29 @@ static int rtl8211b_parse_status(struct phy_device
> > *phydev)
> >                             putc('.');
> >                     udelay(1000);   /* 1 ms */
> >                     mii_reg = phy_read(phydev, MDIO_DEVAD_NONE,
> > -                                   MIIM_RTL8211B_PHY_STATUS);
> > +                                   MIIM_RTL8211x_PHY_STATUS);
> >             }
> >             puts(" done\n");
> >             udelay(500000); /* another 500 ms (results in faster
> > booting) */
> >     } else {
> > -           if (mii_reg & MIIM_RTL8211B_PHYSTAT_LINK)
> > +           if (mii_reg & MIIM_RTL8211x_PHYSTAT_LINK)
> >                     phydev->link = 1;
> >             else
> >                     phydev->link = 0;
> >     }
> >
> > -   if (mii_reg & MIIM_RTL8211B_PHYSTAT_DUPLEX)
> > +   if (mii_reg & MIIM_RTL8211x_PHYSTAT_DUPLEX)
> >             phydev->duplex = DUPLEX_FULL;
> >     else
> >             phydev->duplex = DUPLEX_HALF;
> >
> > -   speed = (mii_reg & MIIM_RTL8211B_PHYSTAT_SPEED);
> > +   speed = (mii_reg & MIIM_RTL8211x_PHYSTAT_SPEED);
> >
> >     switch (speed) {
> > -   case MIIM_RTL8211B_PHYSTAT_GBIT:
> > +   case MIIM_RTL8211x_PHYSTAT_GBIT:
> >             phydev->speed = SPEED_1000;
> >             break;
> > -   case MIIM_RTL8211B_PHYSTAT_100:
> > +   case MIIM_RTL8211x_PHYSTAT_100:
> >             phydev->speed = SPEED_100;
> >             break;
> >     default:
> > @@ -103,28 +103,53 @@ static int rtl8211b_parse_status(struct
> > phy_device
> > *phydev)
> >     return 0;
> >  }
> >
> > -static int rtl8211b_startup(struct phy_device *phydev)
> > +static int rtl8211x_startup(struct phy_device *phydev)
> >  {
> >     /* Read the Status (2x to make sure link is right) */
> >     genphy_update_link(phydev);
> > -   rtl8211b_parse_status(phydev);
> > +   rtl8211x_parse_status(phydev);
> >
> >     return 0;
> >  }
> >
> > +/* Support for RTL8211B PHY */
> >  static struct phy_driver RTL8211B_driver = {
> >     .name = "RealTek RTL8211B",
> >     .uid = 0x1cc910,
> >     .mask = 0xfffff0,
> >     .features = PHY_GBIT_FEATURES,
> > -   .config = &rtl8211b_config,
> > -   .startup = &rtl8211b_startup,
> > +   .config = &rtl8211x_config,
> > +   .startup = &rtl8211x_startup,
> > +   .shutdown = &genphy_shutdown,
> > +};
> > +
> > +/* Support for RTL8211E-VB-CG, RTL8211E-VL-CG and RTL8211EG-VB-CG
> > +PHYs */ static struct phy_driver RTL8211E_driver = {
> > +   .name = "RealTek RTL8211E",
> > +   .uid = 0x1cc915,
> > +   .mask = 0xfffff0,
> > +   .features = PHY_GBIT_FEATURES,
> > +   .config = &rtl8211x_config,
> > +   .startup = &rtl8211x_startup,
> > +   .shutdown = &genphy_shutdown,
> > +};
> > +
> > +/* Support for RTL8211DN PHY */
> > +static struct phy_driver RTL8211DN_driver = {
> > +   .name = "RealTek RTL8211DN",
> > +   .uid = 0x1cc914,
> > +   .mask = 0xfffff0,
> > +   .features = PHY_GBIT_FEATURES,
> > +   .config = &rtl8211x_config,
> > +   .startup = &rtl8211x_startup,
> >     .shutdown = &genphy_shutdown,
> >  };
> >
> >  int phy_realtek_init(void)
> >  {
> >     phy_register(&RTL8211B_driver);
> > +   phy_register(&RTL8211E_driver);
> > +   phy_register(&RTL8211DN_driver);
> >
> >     return 0;
> >  }
> > --
> > 1.7.11.7
> >


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to