public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/4] net: fec_mxc: add 1000 Mbps selection
@ 2012-01-26 22:21 Troy Kisky
  2012-01-26 22:21 ` [U-Boot] [PATCH 2/4] net: fec_mxc: add PHYLIB support Troy Kisky
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Troy Kisky @ 2012-01-26 22:21 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
---
 drivers/net/fec_mxc.c |   18 +++++++++++++++++-
 drivers/net/fec_mxc.h |    2 ++
 2 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 3affda8..3fffe79 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -378,6 +378,7 @@ static int fec_set_hwaddr(struct eth_device *dev)
 static int fec_open(struct eth_device *edev)
 {
 	struct fec_priv *fec = (struct fec_priv *)edev->priv;
+	int speed;
 
 	debug("fec_open: fec_open(dev)\n");
 	/* full-duplex, heartbeat disabled */
@@ -427,8 +428,23 @@ static int fec_open(struct eth_device *edev)
 #endif
 
 	miiphy_wait_aneg(edev);
-	miiphy_speed(edev->name, fec->phy_id);
+	speed = miiphy_speed(edev->name, fec->phy_id);
 	miiphy_duplex(edev->name, fec->phy_id);
+#ifdef CONFIG_MX6Q
+	{
+		u32 ecr = readl(&fec->eth->ecntrl) & ~FEC_ECNTRL_SPEED;
+		u32 rcr = (readl(&fec->eth->r_cntrl) &
+				~(FEC_RCNTRL_RMII | FEC_RCNTRL_RMII_10T)) |
+				FEC_RCNTRL_RGMII | FEC_RCNTRL_MII_MODE;
+		if (speed == _1000BASET)
+			ecr |= FEC_ECNTRL_SPEED;
+		else if (speed != _100BASET)
+			rcr |= FEC_RCNTRL_RMII_10T;
+		writel(ecr, &fec->eth->ecntrl);
+		writel(rcr, &fec->eth->r_cntrl);
+	}
+#endif
+	debug("%s:Speed=%i\n", __func__, speed);
 
 	/*
 	 * Enable SmartDMA receive task
diff --git a/drivers/net/fec_mxc.h b/drivers/net/fec_mxc.h
index 39337bf..1d6ab06 100644
--- a/drivers/net/fec_mxc.h
+++ b/drivers/net/fec_mxc.h
@@ -198,6 +198,7 @@ struct ethernet_regs {
 #define FEC_RCNTRL_FCE			0x00000020
 #define FEC_RCNTRL_RGMII		0x00000040
 #define FEC_RCNTRL_RMII			0x00000100
+#define FEC_RCNTRL_RMII_10T		0x00000200
 
 #define FEC_TCNTRL_GTS			0x00000001
 #define FEC_TCNTRL_HBC			0x00000002
@@ -207,6 +208,7 @@ struct ethernet_regs {
 
 #define FEC_ECNTRL_RESET		0x00000001	/* reset the FEC */
 #define FEC_ECNTRL_ETHER_EN		0x00000002	/* enable the FEC */
+#define FEC_ECNTRL_SPEED		0x00000020
 #define FEC_ECNTRL_DBSWAP		0x00000100
 
 #define FEC_X_WMRK_STRFWD		0x00000100
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2012-02-01  2:00 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-26 22:21 [U-Boot] [PATCH 1/4] net: fec_mxc: add 1000 Mbps selection Troy Kisky
2012-01-26 22:21 ` [U-Boot] [PATCH 2/4] net: fec_mxc: add PHYLIB support Troy Kisky
2012-01-30  2:04   ` Andy Fleming
2012-01-31  2:13     ` Troy Kisky
2012-02-01  0:29       ` Andy Fleming
2012-02-01  2:00         ` Troy Kisky
2012-01-26 22:21 ` [U-Boot] [PATCH 3/4] net: phy: add support for Micrel's KSZ9021 Troy Kisky
2012-01-27  2:54   ` Mike Frysinger
2012-01-27 21:56     ` Troy Kisky
2012-01-30  2:26   ` Andy Fleming
2012-01-30 21:30     ` Troy Kisky
2012-01-31  0:05       ` Andy Fleming
2012-01-31  2:06         ` Troy Kisky
2012-01-26 22:21 ` [U-Boot] [PATCH 4/4] i.mx6q: mx6qsabrelite: Update the network configuration Troy Kisky
2012-01-27 10:25 ` [U-Boot] [PATCH 1/4] net: fec_mxc: add 1000 Mbps selection Dirk Behme
2012-01-30  1:56 ` Andy Fleming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox