[U-Boot] unassigned-patches/24: [PATCH] PHY: Add support for the M88E1121R Marvell chip.

Signed-off-by: Yuri Tikhonov yur@emcraft.com Signed-off-by: Sergei Poselenov sposelenov@emcraft.com
--- Added to GNATS database as unassigned-patches/24
Responsible: patch-coord Message-Id: 1218807733-26929-1-git-send-email-dzu@denx.de In-Reply-To: References: Patch-Date: Fri Aug 15 15:42:08 +0200 2008
--- drivers/net/tsec.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/tsec.h | 7 +++++++ 2 files changed, 57 insertions(+), 0 deletions(-)
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 6e0f2c6..fb5002d 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -1157,6 +1157,55 @@ struct phy_info phy_info_M88E1118 = { }, };
+/* + * 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); @@ -1522,6 +1571,7 @@ struct phy_info *phy_info[] = { &phy_info_M88E1011S, &phy_info_M88E1111S, &phy_info_M88E1118, + &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

Hi Ben,
Signed-off-by: Yuri Tikhonov yur@emcraft.com Signed-off-by: Sergei Poselenov sposelenov@emcraft.com
Added to GNATS database as unassigned-patches/24
Responsible: patch-coord Message-Id: 1218807733-26929-1-git-send-email-dzu@denx.de In-Reply-To: References: Patch-Date: Fri Aug 15 15:42:08 +0200 2008
drivers/net/tsec.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/tsec.h | 7 +++++++ 2 files changed, 57 insertions(+), 0 deletions(-)
Any comments on this patch?
Thanks Detlev

Hi Detlev,
Detlev Zundel wrote:
Hi Ben,
Signed-off-by: Yuri Tikhonov yur@emcraft.com Signed-off-by: Sergei Poselenov sposelenov@emcraft.com
Added to GNATS database as unassigned-patches/24
Responsible: patch-coord Message-Id: 1218807733-26929-1-git-send-email-dzu@denx.de In-Reply-To: References: Patch-Date: Fri Aug 15 15:42:08 +0200 2008
drivers/net/tsec.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/tsec.h | 7 +++++++ 2 files changed, 57 insertions(+), 0 deletions(-)
Any comments on this patch?
Thanks Detlev
Hi Detlev,
It looks like this one slipped through the cracks. I've looked through my e-mails and found one from Wolfgang on 6/8 where he said he'd apply it, so I acked the patch rather than pulling it myself. For whatever reason, it didn't make it in.
I've rejigged the patch to apply to TOT, and have applied to the net repo. Please find the fixed-up patch attached, as applied to e99e9575bbeba1b7c48e046547cae065ec0071de
[PATCH] PHY: Add support for the M88E1121R Marvell chip.
From: Sergei Poselenov sposelenov@emcraft.com
Signed-off-by: Yuri Tikhonov yur@emcraft.com Signed-off-by: Sergei Poselenov sposelenov@emcraft.com --- 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 @@ -1157,6 +1157,54 @@ struct phy_info phy_info_M88E1118 = { }, };
+/* + * 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); @@ -1521,6 +1569,7 @@ struct phy_info *phy_info[] = { &phy_info_BCM5464S, &phy_info_M88E1011S, &phy_info_M88E1111S, &phy_info_M88E1118, + &phy_info_M88E1121R, &phy_info_M88E1145, &phy_info_M88E1149S, 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

Hi Ben,
It looks like this one slipped through the cracks. I've looked through my e-mails and found one from Wolfgang on 6/8 where he said he'd apply it, so I acked the patch rather than pulling it myself. For whatever reason, it didn't make it in.
I've rejigged the patch to apply to TOT, and have applied to the net repo. Please find the fixed-up patch attached, as applied to e99e9575bbeba1b7c48e046547cae065ec0071de
Excellent. Any idea on when you will send a pull request?
Thanks Detlev

Hi Detlev,
On Mon, Sep 1, 2008 at 3:48 PM, Detlev Zundel dzu@denx.de wrote:
Hi Ben,
It looks like this one slipped through the cracks. I've looked through my e-mails and found one from Wolfgang on 6/8 where he said he'd apply it, so I acked the patch rather than pulling it myself. For whatever reason, it didn't make it in.
I've rejigged the patch to apply to TOT, and have applied to the net repo. Please find the fixed-up patch attached, as applied to e99e9575bbeba1b7c48e046547cae065ec0071de
Excellent. Any idea on when you will send a pull request?
The only thing holding me back is that there are quite a few changes that were posted over the weekend or today (a statutory holiday in the U.S. and Canada) and would like to give people more time to review. If it's OK with you, I'll send a pull request tomorrow night so you guys have it first thing Wednesday morning.
If you don't think this precaution is necessary, I can send a request tonight.
regards, Ben

Hi Ben,
Hi Detlev,
On Mon, Sep 1, 2008 at 3:48 PM, Detlev Zundel dzu@denx.de wrote:
Hi Ben,
It looks like this one slipped through the cracks. I've looked through my e-mails and found one from Wolfgang on 6/8 where he said he'd apply it, so I acked the patch rather than pulling it myself. For whatever reason, it didn't make it in.
I've rejigged the patch to apply to TOT, and have applied to the net repo. Please find the fixed-up patch attached, as applied to e99e9575bbeba1b7c48e046547cae065ec0071de
Excellent. Any idea on when you will send a pull request?
The only thing holding me back is that there are quite a few changes that were posted over the weekend or today (a statutory holiday in the U.S. and Canada) and would like to give people more time to review. If it's OK with you, I'll send a pull request tomorrow night so you guys have it first thing Wednesday morning.
Thats fine.
If you don't think this precaution is necessary, I can send a request tonight.
Don't get me wrong, I did not want to push you. I only wanted to know at what time I'd need to send reminders again ;)
Cheers Detlev
participants (3)
-
Ben Warren
-
Detlev Zundel
-
u-boot@bugs.denx.de