Romen,
        I am sorry for the misguided statement.
        I indeed had patched it .
I am copying the patch here. Hope it helps you.
diff --exclude CVS -uNr linux-2.6.30/drivers/net/phy/Kconfig linux-2.6.30.modified/drivers/net/phy/Kconfig --- linux-2.6.30/drivers/net/phy/Kconfig 2009-06-09 23:05:27.000000000 -0400 +++ linux-2.6.30.modified/drivers/net/phy/Kconfig 2009-10-09 15:43:09.000000000 -0400
@@ -82,6 +82,12 @@
        ---help---
          Supports the LSI ET1011C PHY.

+config MICREL_PHY
+       tristate "Drivers for MICREL  PHYs"
+        depends on PHYLIB
+       ---help---
+         Currently supports the KS8721BL, KSZ8041NL
+
 config FIXED_PHY
        bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
        depends on PHYLIB=y
diff --exclude CVS -uNr linux-2.6.30/drivers/net/phy/Makefile linux-2.6.30.modified/drivers/net/phy/Makefile --- linux-2.6.30/drivers/net/phy/Makefile 2009-06-09 23:05:27.000000000 -0400 +++ linux-2.6.30.modified/drivers/net/phy/Makefile 2009-10-09 16:07:37.000000000 -0400
@@ -14,6 +14,7 @@
 obj-$(CONFIG_ICPLUS_PHY)       += icplus.o
 obj-$(CONFIG_REALTEK_PHY)      += realtek.o
 obj-$(CONFIG_LSI_ET1011C_PHY)  += et1011c.o
+obj-$(CONFIG_MICREL_PHY)       += micrel.o
 obj-$(CONFIG_FIXED_PHY)                += fixed.o
 obj-$(CONFIG_MDIO_BITBANG)     += mdio-bitbang.o
 obj-$(CONFIG_MDIO_GPIO)                += mdio-gpio.o
diff --exclude CVS -uNr linux-2.6.30/drivers/net/phy/micrel.c linux-2.6.30.modified/drivers/net/phy/micrel.c --- linux-2.6.30/drivers/net/phy/micrel.c 1969-12-31 19:00:00.000000000 -0500 +++ linux-2.6.30.modified/drivers/net/phy/micrel.c 2009-09-23 16:04:53.000000000 -0400
@@ -0,0 +1,129 @@
+ /* drivers/net/phy/micrel.c
+ *
+ * Driver for Micrel  PHY
+ * based on drivers/net/phy/marvell.c  *
+ *
+ *
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/string.h>
+#include <linux/errno.h>
+#include <linux/unistd.h>
+#include <linux/slab.h>
+#include <linux/interrupt.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/netdevice.h>
+#include <linux/etherdevice.h>
+#include <linux/skbuff.h>
+#include <linux/spinlock.h>
+#include <linux/mm.h>
+#include <linux/module.h>
+#include <linux/mii.h>
+#include <linux/ethtool.h>
+#include <linux/phy.h>
+
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/uaccess.h>
+#define MII_MICRELL_RXERCR     0x15
+#define MII_MICRELL_ICSR       0x1B
+#define MII_MICRELL_PHYCR      0x1F
+
+
+MODULE_DESCRIPTION("Micrel PHY driver");
+MODULE_AUTHOR("Suvidh Kankariya");
+MODULE_LICENSE("GPL");
+
+
+static int micrel_config_intr(struct phy_device *phydev)
+{
+  int err;
+
+       if(phydev->interrupts == PHY_INTERRUPT_ENABLED)
+       {
+         err = phy_write(phydev, MII_MICRELL_ICSR, 0xFF00);
+         err = phy_write(phydev, 0, 0x1200); /* control register */
+       }
+       else
+               err = phy_write(phydev, MII_MICRELL_ICSR, 0);
+
+       return err;
+}
+
+static int micrel_config_init(struct phy_device *phydev)
+{
+    printk("Phy config  done");
+
+       phy_write(phydev, MII_MICRELL_ICSR, 0);
+       return 0;
+}
+
+
+static int micrel_ack_interrupt(struct phy_device *phydev)
+{
+       int err = phy_read(phydev, MII_MICRELL_ICSR);
+       if (err < 0)
+               return err;
+
+       return 0;
+}
+
+static struct phy_driver ks8721bl_driver = {
+       .phy_id         = 0x000221619,
+       .name           = "KS8721BL",
+       .phy_id_mask    = 0xfffffff0,
+       .features       = PHY_BASIC_FEATURES,
+       .flags          = PHY_HAS_INTERRUPT,
+       .config_init    = micrel_config_init,
+       .config_aneg    = genphy_config_aneg,
+       .read_status    = genphy_read_status,
+       .ack_interrupt  = micrel_ack_interrupt,
+       .config_intr    = micrel_config_intr,
+       .driver         = { .owner = THIS_MODULE,},
+};
+
+
+
+static struct phy_driver ksz8041nl_driver = {
+       .phy_id         = 0x00022151,
+       .name           = "KSZ8041NL",
+       .phy_id_mask    = 0xfffffff0,
+       .features       = PHY_BASIC_FEATURES,
+       .flags          = PHY_HAS_INTERRUPT,
+       .config_init    = micrel_config_init,
+       .config_aneg    = genphy_config_aneg,
+       .read_status    = genphy_read_status,
+       .ack_interrupt  = micrel_ack_interrupt,
+       .config_intr    = micrel_config_intr,
+       .driver         = { .owner = THIS_MODULE,},
+};
+
+static int __init micrel_init(void)
+{
+       int ret;
+
+       ret = phy_driver_register(&ks8721bl_driver);
+       if (ret)
+               return ret;
+    ret = phy_driver_register(&ksz8041nl_driver);
+    printk("Phy Init  done");
+    if (ret)
+        goto err8041;
+
+       return 0;
+ err8041:
+    phy_driver_unregister(&ks8721bl_driver);
+       return ret;
+}
+
+static void __exit micrel_exit(void)
+{
+       phy_driver_unregister(&ks8721bl_driver);
+    phy_driver_unregister(&ksz8041nl_driver);
+}
+
+module_init(micrel_init);
+module_exit(micrel_exit);



Suvidh





------------------------------

Message: 6
Date: Tue, 27 Oct 2009 20:54:47 +0100
From: Roman Fietze <roman.fie...@telemotive.de>
To: linuxppc-dev@lists.ozlabs.org
Subject: Re: Micrel PHY KSZ8001 on MPC5200B FEC
Message-ID: <200910272054.47398.roman.fie...@telemotive.de>
Content-Type: Text/Plain;  charset="iso-8859-1"

Hello Suvidh,

On Tuesday 27 October 2009 17:47:51 suvidh kankariya wrote:

> A driver for micrel phy exists in /drivers/net/phy/micrel.c. in
> 2.6.30.

Am I somewhat blind, or do you have access to other 2.6.30's than I
have?

I searched git.kernel.org, git.denx.de and git.secretlab.ca, but could
not find that file, neither in the current master, nor in older tags
somewhat related to "2.6.30", nor in any local clone in any version of
the 2.6 since "He" created the repos.


> If you are using older kernel you may want to copy it.

2.6.30 and 2.6.31 from DENX or kernel.org.


Roman

--
Roman Fietze                Telemotive AG B?ro M?hlhausen
Breitwiesen                              73347 M?hlhausen
Tel.: +49(0)7335/18493-45        http://www.telemotive.de


------------------------------


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to