Hi, Wolfgang Denk wrote: > From: Sergei Poselenov <[EMAIL PROTECTED]> > > Signed-off-by: Yuri Tikhonov <[EMAIL PROTECTED]> > Signed-off-by: Sergei Poselenov <[EMAIL PROTECTED]> > --- > drivers/net/tsec.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ > drivers/net/tsec.h | 7 +++++++ > 2 files changed, 56 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c > index c7af930..565da5c 100644 > --- a/drivers/net/tsec.c > +++ b/drivers/net/tsec.c > @@ -1128,6 +1128,54 @@ struct phy_info phy_info_M88E1111S = { > }, > }; > > +/* > + * Since to access LED register we need do switch the page, we > + * do LED configuring in the miim_read-like function as follows > + */ > +uint mii_88E1121_set_led (uint mii_reg, struct tsec_private *priv) > +{ > + uint pg; > + > + /* Switch the page to access the led register */ > + pg = read_phy_reg(priv, MIIM_88E1121_PHY_PAGE); > + write_phy_reg(priv, MIIM_88E1121_PHY_PAGE, MIIM_88E1121_PHY_LED_PAGE); > + > + /* Configure leds */ > + write_phy_reg(priv, MIIM_88E1121_PHY_LED_CTRL, > + MIIM_88E1121_PHY_LED_DEF); > + > + /* Restore the page pointer */ > + write_phy_reg(priv, MIIM_88E1121_PHY_PAGE, pg); > + return 0; > +} > + > +struct phy_info phy_info_M88E1121R = { > + 0x01410cb, > + "Marvell 88E1121R", > + 4, > + (struct phy_cmd[]){ /* config */ > + /* Reset and configure the PHY */ > + {MIIM_CONTROL, MIIM_CONTROL_RESET, NULL}, > + {MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL}, > + {MIIM_ANAR, MIIM_ANAR_INIT, NULL}, > + /* Configure leds */ > + {MIIM_88E1121_PHY_LED_CTRL, miim_read, > + &mii_88E1121_set_led}, > + {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init}, > + {miim_end,} > + }, > + (struct phy_cmd[]){ /* startup */ > + /* Status is read once to clear old link state */ > + {MIIM_STATUS, miim_read, NULL}, > + {MIIM_STATUS, miim_read, &mii_parse_sr}, > + {MIIM_STATUS, miim_read, &mii_parse_link}, > + {miim_end,} > + }, > + (struct phy_cmd[]){ /* shutdown */ > + {miim_end,} > + }, > +}; > + > static unsigned int m88e1145_setmode(uint mii_reg, struct tsec_private *priv) > { > uint mii_data = read_phy_reg(priv, mii_reg); > @@ -1492,6 +1540,7 @@ struct phy_info *phy_info[] = { > &phy_info_BCM5464S, > &phy_info_M88E1011S, > &phy_info_M88E1111S, > + &phy_info_M88E1121R, > &phy_info_M88E1145, > &phy_info_M88E1149S, > &phy_info_dm9161, > diff --git a/drivers/net/tsec.h b/drivers/net/tsec.h > index 6a2338b..fee5934 100644 > --- a/drivers/net/tsec.h > +++ b/drivers/net/tsec.h > @@ -184,6 +184,13 @@ > #define MIIM_88E1111_PHY_LED_DIRECT 0x4100 > #define MIIM_88E1111_PHY_LED_COMBINE 0x411C > > +/* 88E1121 PHY LED Control Register */ > +#define MIIM_88E1121_PHY_LED_CTRL 16 > +#define MIIM_88E1121_PHY_LED_PAGE 3 > +#define MIIM_88E1121_PHY_LED_DEF 0x0030 > + > +#define MIIM_88E1121_PHY_PAGE 22 > + > /* 88E1145 Extended PHY Specific Control Register */ > #define MIIM_88E1145_PHY_EXT_CR 20 > #define MIIM_M88E1145_RGMII_RX_DELAY 0x0080 > This won't apply because to the net repo, I'm guessing because I've already applied another patch to driver/net/tsec.c for another Marvell PHY (commit 290ef6436838b1cc013bd67e0e0495c9eb3e23c0) and it hasn't made it into the main line yet. I see two options:
1. Somebody who knows more about git please tell me how to merge this. 2. Rebase the patch vs. the current net tree. regards, Ben ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users