[Armadeus-commitlog] SF.net SVN: armadeus:[1058] trunk/buildroot/target/device/armadeus/linux/ ker
Brought to you by:
sszy
Revision: 1058
http://armadeus.svn.sourceforge.net/armadeus/?rev=1058&view=rev
Author: artemys
Date: 2009-02-10 21:37:36 +0000 (Tue, 10 Feb 2009)
Log Message:
-----------
[LINUX] Add PHY power down + patch rework
Modified Paths:
--------------
trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/linux-2.6.27.13-297-apf27-armadeus-add_ethernet_PHY.patch
Modified: trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/linux-2.6.27.13-297-apf27-armadeus-add_ethernet_PHY.patch
===================================================================
--- trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/linux-2.6.27.13-297-apf27-armadeus-add_ethernet_PHY.patch 2009-02-10 18:00:49 UTC (rev 1057)
+++ trunk/buildroot/target/device/armadeus/linux/kernel-patches/2.6.27.13/linux-2.6.27.13-297-apf27-armadeus-add_ethernet_PHY.patch 2009-02-10 21:37:36 UTC (rev 1058)
@@ -1,54 +1,59 @@
---- linux-2.6.27.2.ref/drivers/net/fec_old.c 2008-12-18 17:46:40.000000000 +0100
-+++ linux-2.6.27.2/drivers/net/fec_old.c 2008-12-18 17:45:01.000000000 +0100
-@@ -1277,6 +1277,47 @@ static phy_info_t phy_info_dp83848 = {
+--- linux-2.6.27.13.ref/drivers/net/fec_old.c 2009-02-10 20:47:01.000000000 +0100
++++ linux-2.6.27.13/drivers/net/fec_old.c 2009-02-10 22:33:32.000000000 +0100
+@@ -1277,6 +1277,52 @@
};
/* ------------------------------------------------------------------------- */
+/* register definitions for the LAN8700 */
+
-+#define MII_LAN8700_SPECIAL 0x12
-+#define MII_LAN87000_CR_RESET 0x8000
++#define MII_LAN8700_SPECIAL 0x12
++#define MII_LAN8700_CR_RESET 0x8000
+
-+static void mii_reset_delay_lan87000(uint mii_reg, struct net_device *dev)
++static void mii_reset_delay_lan8700(uint mii_reg, struct net_device *dev)
+{
+ udelay(1000);
+}
+
-+static phy_info_t phy_info_lan8700 = {
-+ 0x00007c0c,
-+ "LAN8700",
-+
-+ (const phy_cmd_t[]){ /* config */
-+ /*
++static phy_cmd_t const phy_cmd_lan8700_config[] = {
++ /*
+ * Wake up from sleep if necessary
+ * Reset PHY, then delay at least 300ns
+ */
-+ {mk_mii_write(MII_LAN8700_SPECIAL, 0x00FF), NULL},
-+ {mk_mii_write(MII_REG_CR, MII_LAN87000_CR_RESET), mii_reset_delay_lan87000},
-+ {mk_mii_read(MII_REG_CR), mii_parse_cr},
-+ {mk_mii_read(MII_REG_ANAR), mii_parse_anar},
-+ {mk_mii_end,}
-+ },
-+ (const phy_cmd_t[]){ /* startup - enable interrupts */
-+ {mk_mii_write(MII_REG_ANAR, 0x01E0), NULL},
-+ {mk_mii_write(MII_REG_CR, 0x1200), NULL}, /* autonegotiate */
-+ {mk_mii_read(MII_REG_SR), mii_parse_sr},
-+ {mk_mii_end,}
-+ },
-+ (const phy_cmd_t[]){ /* ack_int - never happens, no interrupt */
-+ {mk_mii_end,}
-+ },
-+ (const phy_cmd_t[]){ /* shutdown */
-+ {mk_mii_write(MII_REG_CR, 0x0800), NULL}, /* shut down */
-+ {mk_mii_end,}
-+ },
++ {mk_mii_write(MII_LAN8700_SPECIAL, 0x00FF), NULL},
++ {mk_mii_write(MII_REG_CR, MII_LAN8700_CR_RESET), mii_reset_delay_lan8700},
++ {mk_mii_read(MII_REG_CR), mii_parse_cr},
++ {mk_mii_read(MII_REG_ANAR), mii_parse_anar},
++ {mk_mii_end,}
+};
++static phy_cmd_t const phy_cmd_lan8700_startup[] = { /* startup - enable interrupts */
++ {mk_mii_write(MII_REG_ANAR, 0x01E0), NULL},
++ {mk_mii_write(MII_REG_CR, 0x1200), NULL}, /* autonegotiate */
++ {mk_mii_read(MII_REG_SR), mii_parse_sr},
++ {mk_mii_end,}
++};
++static phy_cmd_t const phy_cmd_lan8700_ack_int[] = {
++ /* ack_int - never happens, no interrupt */
++ {mk_mii_end,}
++};
++static phy_cmd_t const phy_cmd_lan8700_shutdown[] = {
++ {mk_mii_write(MII_REG_CR, 0x0800 /*BMCR_PDOWN*/), NULL},
++ {mk_mii_end,}
++};
+
++static phy_info_t phy_info_lan8700 = {
++ 0x00007c0c,
++ "LAN8700",
++ .config = phy_cmd_lan8700_config,
++ .startup = phy_cmd_lan8700_startup,
++ .ack_int = phy_cmd_lan8700_ack_int,
++ .shutdown = phy_cmd_lan8700_shutdown,
++};
++
+/* ------------------------------------------------------------------------- */
static phy_info_t const *const phy_info[] = {
&phy_info_lxt970,
-@@ -1285,6 +1326,7 @@ static phy_info_t const *const phy_info[
+@@ -1285,6 +1331,7 @@
&phy_info_am79c874,
&phy_info_ks8721bl,
&phy_info_dp83848,
@@ -56,3 +61,13 @@
NULL
};
+@@ -2687,6 +2734,9 @@
+ if (fep->link) {
+ fec_stop(dev);
+ }
++ /* power down phy */
++ mii_do_cmd(dev, fep->phy->shutdown);
++
+ return 0;
+ }
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|